PHP字符串到javascript可以破坏代码-我想,问题出在某些字符上?
我正在将一个PHP字符串传递到onclick中。本文来自YouTube(视频描述)。在某些情况下,字符串会破坏代码 字符\n\r'和“已删除,因此原因不明显PHP字符串到javascript可以破坏代码-我想,问题出在某些字符上?,php,javascript,string,Php,Javascript,String,我正在将一个PHP字符串传递到onclick中。本文来自YouTube(视频描述)。在某些情况下,字符串会破坏代码 字符\n\r'和“已删除,因此原因不明显 echo "<span onclick='update_hits(\"".$id."\");vidtxt=\"".$desc6."\";openVideo(\"".$v."\",\"".$sn." : ".addslashes($title)."\",0)'><img src='".$apng."' border='0'
echo "<span onclick='update_hits(\"".$id."\");vidtxt=\"".$desc6."\";openVideo(\"".$v."\",\"".$sn." : ".addslashes($title)."\",0)'><img src='".$apng."' border='0' />Play large</span>";
大多数描述字符串都可以很好地工作,即使那些包含其他语言文本的字符串也是如此。但有时有些东西会打破这种情况
剥离到ascii,这意味着我不能显示非英语语言,确实有效
$desc6=preg_replace('/[^(\x20-\x7F)]*/','', $desc6);
以下允许所有描述正常工作,但韩语等语言无法正确显示:
$desc6 = iconv("ISO-8859-1", "UTF-8//IGNORE", $desc6);
有什么想法吗
附言:$desc6=json_编码($desc6);
全部中断:(您只需要两个函数:
- 对JavaScript字符串进行编码
- 对HTML属性值进行编码
echo "<span onclick='".htmlspecialchars("update_hits(".json_encode($id).");vidtxt=".json_encode($desc6).";openVideo(".json_encode($v).",".json_encode($sn." : ".$title).",0)", ENT_QUOTES)."'><img src='".htmlspecialchars($apng, ENT_QUOTES)."' border='0' />Play large</span>";
echo“播放大屏幕”;
您只需要两个功能:
- 对JavaScript字符串进行编码
- 对HTML属性值进行编码
echo "<span onclick='".htmlspecialchars("update_hits(".json_encode($id).");vidtxt=".json_encode($desc6).";openVideo(".json_encode($v).",".json_encode($sn." : ".$title).",0)", ENT_QUOTES)."'><img src='".htmlspecialchars($apng, ENT_QUOTES)."' border='0' />Play large</span>";
echo“播放大屏幕”;
.addslashes($title)。“\”,0)
那不应该是“\”.addslashes($title)。“\”,0)
那不应该是“\”你知道这是什么代码吗?我的意思是,你多次执行某些步骤(例如,删除0x7F)。他们正在过滤UTF。找到解决方案后,我将删除冗余。您的HTML页面是否确保其字符集为UTF-8?
?您是否有中断代码的示例字符串?指向应用程序的链接?示例是此视频的描述:在YouTube上,该描述没有我看到的一些wierd符号(我从gdata获得此文本)。是的,标题中是utf-8。不过这是个好主意。您知道这是代码的功能吗?我的意思是,您多次执行某些步骤(例如,nl2br
,删除0x7F)。他们正在过滤UTF。找到解决方案后,我将删除冗余。您的HTML页面是否确保其字符集为UTF-8?
?您是否有中断代码的示例字符串?指向应用程序的链接?示例是此视频的描述:在YouTube上,该描述没有我看到的一些wierd符号(我从gdata获得此文本)。是的,标题中是utf-8。尽管这是个好主意。我尝试过此方法,但没有帮助。谢谢你的回复!我觉得这不太对劲。似乎缺少了“和”?我尝试了vidtxt=json\U编码(\“”.$fgh2.\”);但没有成功-全部损坏。需要添加json脚本吗?@SteveClarke请尝试我编写的示例。它不需要以任何方式更改或调整。它可以按原样使用。还尝试了vidtxt=\“”。json\U编码($desc6)。“\”不起作用-全部损坏。错误在$desc6中,因此我尝试了:$desc6=json\U编码($desc6);首先也是。相同-这不是您的代码,但是json_encode()不适用于utf-8字符串。我尝试了这个,但没有帮助。谢谢您的回复!我觉得这个不太对劲。似乎缺少了“和”?我尝试了vidtxt=json_encode(\“”.$fgh2.\”);但没有成功-全部损坏。需要添加json脚本吗?@SteveClarke请尝试我编写的示例。它不需要以任何方式更改或调整。它可以按原样使用。还尝试了vidtxt=\“”。json\U编码($desc6)。“\”不起作用-全部损坏。错误在$desc6中,因此我尝试了:$desc6=json\U编码($desc6);首先也是.Same-这不是您的代码,而是json_encode()不能处理utf-8字符串