我无法弄清楚为什么我的php处理脚本在遇到tinymce textarea中的特殊字符时会停止。 例如,如果我键入foo并提交,很好......没有问题但是如果我键入foo<<<<<<<<<<<<<< 编辑器正在创建html实体并通过ajax发送它们
获取内容
var c = tinyMCE.get('content').getContent();
并发送内容
ajax.send("action=edit_content&c="+c+"&id="+id);
我可以在firebug中看到字符串正在传递
action=edit_content&c=<p>foo <<<</p>&id=8
并且php实际上没什么特别的,只需将该帖子设置为var
即可可能是因为&amp;在<
?也许它认为这实际上是另一个帖子参数?
当涉及到ajax时,我仍然会弄湿我的脚。如果我的假设是正确的,我该如何解决?
答案 0 :(得分:3)
你有正确的想法。 &符号正在破坏URL字符串。
为了修复中断字符,您必须escape
字符串。
试试这个:
ajax.send("action=edit_content&c="+escape(c)+"&id="+id);
您可能不必(因为Apache会为您执行此操作),但如有必要,您还可以使用urldecode
在PHP端转换字符串:
<?php echo urldecode($_GET['c']); ?>