Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP字符串到javascript可以破坏代码-我想,问题出在某些字符上?_Php_Javascript_String - Fatal编程技术网

PHP字符串到javascript可以破坏代码-我想,问题出在某些字符上?

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'

我正在将一个PHP字符串传递到onclick中。本文来自YouTube(视频描述)。在某些情况下,字符串会破坏代码

字符\n\r'和“已删除,因此原因不明显

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字符串