我正在尝试回显表中的推文按钮,并从 json_array 响应中获取推文文本。
除非 json 响应中包含单引号(撇号),否则以下代码有效。
如果响应有单引号(例如我不高兴),这会破坏推文文本并在 I 之后停止
有没有办法从数组中删除所有单个quoyes?或者有更好的方法来完成我想要完成的任务吗?
echo "<table border='0'>";
echo "<tr><td><a href='https://twitter.com/share' class='twitter-share-button'{count} data-text='";
echo $json_array["reasons"][0]["author_name"], "says ", $json_array["reasons"][0]["content"];
echo " data-via='OnRecall' data-hashtags='OnRecall'>Tweet</a></td></tr>";
echo "<tr><td>Name: </td><td>", $json_array["reasons"][0]["author_name"];
echo " -> Liked: ", $json_array["reasons"][0]["like_count"], " times.</td></tr>";
echo "<tr><td width= '20'></td><td>", $json_array["reasons"][0]["content"];
echo "</td></tr></table><p><hr></hr></p>";
因此,如果 $json_array["reasons"][0]["content"] 中包含单引号,则推文文本将停止在该处。
感谢您的阅读。
最佳答案
您可以使用 PHP 的 htmlspecialchars
函数来完成这个任务。使用 ENT_QUOTES
标志,此函数会将所有引号编码为 HTML 实体('
变为 '
),并且还可以显着减少您的漏洞Cross-Site Scripting attacks -- 当您显示的数据来自不受信任的来源(例如其他人的 Twitter feed)时,这一点尤其重要:
$content = htmlspecialchars($json_array["reasons"][0]["author_name"], ENT_QUOTES)
. "says "
. htmlspecialchars($json_array["reasons"][0]["content"], ENT_QUOTES);
echo "<a ... data-text='$content'>';
关于php json_array 回显推文文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34385958/