0

我使用我网站上的 Facebook 共享链接在 Facebook 上发布文章。

对于某些链接,它有效,而对于其他链接,则无效。通过链接传递的标题和文本是法语(很多引号和特殊字符),处理链接的页面是 UTF8。

我成功地使所有 FB 链接工作,只需在对内容进行 urlencode 并从中创建链接之前使用“mysql_real_escape_string”。

为什么是“mysql_real_escape_string”?

这是一个测试,因为“htmlentities”、“htmlspecialchars”和“addslashes”从未起作用。明显的缺点是“mysql_real_escape_string”函数与那里无关,因为它与数据库无关。事实上,我收到一条错误消息,告诉我这个功能“被用户拒绝......”。

无论如何,我不打算使用此功能,但奇怪的是它使 Facebook 共享链接在 100% 的时间内有效,而“addslashes”却没有。我认为 addlashes 是“mysql_real_escape_string”的纯 PHP 版本,但它有一些不同,否则,它应该可以正常工作,但事实并非如此。

我的问题有任何纯 PHP 替代解决方案吗?

4

1 回答 1

1

url 编码基于 RFC 1738标准。url 编码的当前标准已更改为。RFC 3986。你想要的函数是rawurlencode($string); 或者自己写一个函数。您要替换的字符有:'!'、'*'、"'"、"("、")"、";"、":"、"@"、"&"、"="、"+ "、"$"、","、"/"、"?"、"%"、"#"、"["、"]"

于 2014-12-16T15:00:17.040 回答