php json_array 回显推文文本

标签 php json twitter

我正在尝试回显表中的推文按钮,并从 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/

相关文章:

django - 我在哪里为 Django 安装 Twitter Bootstrap - 主文件夹或静态文件夹?

ruby-on-rails - Omniauth 登录为 auth url 添加了额外的端口

php - 为什么 css 在 codeigniter 上不起作用?

php - 修复 javascript 中不正确转义的字符串

json - Rails3 : Take control over generated JSON (to_json with datamapper ORM)

php - JS中用xmlhttpRequest请求传递JSON

node.js - Twitter api 搜索用户发布的推文

php - 每个 GROUP BY 的总行数

php - 从另一个数组中删除一个数组中的值

php - 更新多个php文件(具体值,按文件顺序增加)