ホームページ >バックエンド開発 >PHPチュートリアル >私を助けてください!とてもせっかちです!長い時間かかりました!

私を助けてください!とてもせっかちです!長い時間かかりました!

WBOY
WBOYオリジナル
2016-06-23 13:58:51913ブラウズ

请问用什么方法将以下数据库mysql的内容放到tinymce编辑器中:

64e5601d0a941f4972a2954192bdae18下面我给大家讲讲javascript函数:ee2bfd64228f824cf6027e0da2815b788e6f1bec809b41fac7b1922b4608e3d3<script> 82c2f54f4cf245029ffb326befd49b3ffunction show() 82c2f54f4cf245029ffb326befd49b3f{ 82c2f54f4cf245029ffb326befd49b3falert("hello world"); 82c2f54f4cf245029ffb326befd49b3f} 82c2f54f4cf245029ffb326befd49b3f</script>bc5e7ea6225569ad1b51cb1e00135d45
64e5601d0a941f4972a2954192bdae18 结果如图:82c2f54f4cf245029ffb326befd49b3f349747a8e0a6700431d99802e0ea2858ee2bfd64228f824cf6027e0da2815b78

直接用PHP的select出来的,没有用!不能显示JS代码那一段,如图:


而我不用select出来的话直接用JS,代码如下:

<script>window.onload=function(){	var text_id=document.getElementById("Article_Content"); //textarea的id	var content='<P>下面我给大家讲讲javascript函数:</P><PRE class=js name="code">&lt;script&gt; <BR>function show() <BR>{ <BR>alert("hello world"); <BR>} <BR>&lt;/script&gt;

结果如图:
tu1

'; text_id.value=content; //SetTinyMceContent("Article_Content",content);}

却能够达到效果,如图:


我不知道是什么原因导致这种情况的,firebug出来的内容发现,主要是<script> 和3f1c4e4b6b16bbbd69b2ee476dc4f83a的区别,请问怎么解决这个问题????想了好久,就是不知道,,,,


回复讨论(解决方案)

3f1c4e4b6b16bbbd69b2ee476dc4f83a改成<script>可行?

直接在js里面改的话,是可以的,但是现在关键是我用select读取数据库出来的$filetext['body']然后转义就是不可以,所以想知道该怎么办

$new_content='<P>下面我给大家讲讲javascript函数:</P><PRE class=js name="code"><script> <BR>function show() <BR>{ <BR>alert("hello world"); <BR>} <BR></script>

结果如图:
tu1

';echo preg_replace_callback('/<\/?script>/i', function($r){return htmlentities($r[0]);}, $new_content) ;

测试是可以的啊 不知道你的代码是怎么写的?

如果是直接用$new_content='64e5601d0a941f4972a2954192bdae18下面我给大家讲讲javascript函数:ee2bfd64228f824cf6027e0da2815b788e6f1bec809b41fac7b1922b4608e3d33f1c4e4b6b16bbbd69b2ee476dc4f83a 82c2f54f4cf245029ffb326befd49b3ffunction show() 82c2f54f4cf245029ffb326befd49b3f{ 82c2f54f4cf245029ffb326befd49b3falert("hello world"); 82c2f54f4cf245029ffb326befd49b3f} 82c2f54f4cf245029ffb326befd49b3f2cacc6d41bbb37262a98f745aa00fbf0bc5e7ea6225569ad1b51cb1e00135d45 64e5601d0a941f4972a2954192bdae18 结果如图:82c2f54f4cf245029ffb326befd49b3f349747a8e0a6700431d99802e0ea2858ee2bfd64228f824cf6027e0da2815b78';
的确是可以的,可是如果$new_content的内容是已经存放在数据库里面了,然后我用select将其读出$filetext['body'],然后再拿来用:
cc30df6537ce897ba6a43b17f9cc46923fdbc33f7f0dff76b20145f446fed8a24750256ae76b6b9d804861d8f69e79d3
其中ajaxfilemanager 是tinymce的编辑器
这样使用,就不可以了,,,

请问为什么会出现这样的情况呢???

代码:

		

结果如图:
tu1

';echo preg_replace_callback('/<\/?script>/i', function($r){return htmlentities($r[0]);}, $new_content) ; ?>


效果却是:

$fillrow['body']是个什么东东

$fillsql="SELECT * FROM entries WHERE id=".$validentry.";";
$fillres=mysql_query($fillsql)or die("查询错误!".mysql_error());
$fillrow=mysql_fetch_assoc($fillres);

查询数据库返回的内容,具体数据库中存的就是$new_content的内容,见下图

大神求解,,,谢谢啦

你想要什么效果?

把 html 代码放在 textarea 中时应做 html 实体转换:htmlentities

我想要 这个结果:

10#提醒我了,谢谢啦!!!用你的方法,很好!最后是用的这个进行实体转化 htmlspecialchars ;htmlentities会有乱码!网上查了相关差别!!!谢谢以上所有回答的大牛!!!初学JS还有很多不懂,见谅!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。