WP_INSERT_POST不能正确插入带有撇号的字符串

时间:2014-06-03 作者:MxmastaMills

我在编写的脚本中使用wp\\u insert\\u post(出于多种原因),这会导致任何包含撇号的字符串被截断到该字符(包括该字符)。下面是我要测试的代码:

$question = "If you’re in need, this is who you call";

echo $question."<br />";

$post = array(
    \'post_title\'     => $question,
    \'post_status\'    => \'publish\',
    \'post_type\'      => \'question\'
);  

echo $post[\'post_title\'];

$the_post_id = wp_insert_post($post);
这很奇怪,因为当我回显两个字符串时,会在两端回显正确的内容,所以我将其隔离到引起问题的wp\\u insert\\u post函数。当我在WordPress中查看它时,标题只是“如果你”,然后结束。

我在这里发现了类似的问题:

http://premium.wpmudev.org/forums/topic/q-wp_insert_post-truncates-post-content-on-quotes-is-there-a-proper-way-to-escape-these-things
但在那一页上似乎没有任何解决方案。你对这里发生了什么以及如何解决有什么想法吗?不知道为什么会这样。我正在研究它,看看它是否与我的代码中的其他内容有关,但似乎不应该这样做,因为数组元素在wp\\u insert\\u post()函数之前回显时,格式似乎很好。

谢谢你的帮助!

编辑我应该指定必须从一个数组中调用这些字符串,在该数组中我从另一个源获取数据,因此我不必直接访问字符串。我尝试了mysql\\u real\\u escape\\u string(),它应该也会自动完成这项工作,但似乎不起作用。。。

1 个回复
SO网友:markcbain

尝试避开撇号字符,即。$question = "If you\\’re in need, this is who you call";撇号在PHP代码中有特殊的含义,这可能就是它被截断的原因。

结束

相关推荐