我将POST变量中的文本从我网站上的表单传递到Twitter,并将此消息保存在我自己的网站上。当我查看我的网站上的条目时,这是绝对的罚款。但是,在某些情况下,当消息中有撇号时,twitter会更新用户的状态,但会删除撇号,这可以在用户状态中看到!
当我在推特网站上更新我的推特状态时,这不会发生。所以我想知道有没有办法将文本传递给twitter?
我目前这样做,并且我使用了这个很棒的Twitter类。 http://github.com/jmathai/twitter-async/tree
$success = $twitterObj->post_statusesUpdate(array('status' => $_POST['message'].$URL.$key));
此外,将URL传递给Twitter用于自动链接URL,但现在这只是显示为文本?
Twitter过去一个月有变化会导致上述情况发生吗?如果不是,我怎么能克服这个?
全部谢谢
更多代码:
function tweetit(){
global $URL;
global $key;
include './twitter/EpiCurl.php';
include './twitter/EpiOAuth.php';
include './twitter/EpiTwitter.php';
$consumer_key = 'hidden';
$consumer_secret = 'hidden';
$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);
$twitterObj->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
$success = $twitterObj->post_statusesUpdate(array('status' => $_POST['message'].' '.$URL.$key));
return $success->response['id'];
}
答案 0 :(得分:4)
听起来你的php配置已启用magic_quotes_gpc
,它会在所有输入上自动调用addslashes(例如,你的POST值)。我在php手册中读到了addslashes / stripslashes。
答案 1 :(得分:1)
您使用的是最新版本吗?不确定是什么问题,因为库的单元测试之一放入单引号(以及其他随机字符)。
http://github.com/jmathai/twitter-async/blob/master/tests/EpiTwitterTest.php#L90
答案 2 :(得分:0)
您可以使用htmlentities函数。
$success = $twitterObj->post_statusesUpdate(array('status' => htmlentities($_POST['message']).$URL.$key));
或htmlspecialchars:
$success = $twitterObj->post_statusesUpdate(array('status' => htmlspecialchars($_POST['message']).$URL.$key));
答案 3 :(得分:0)
收到帖子后但在通过卷曲发送之前,请删除stripslashes
urlencode(stripslashes($posted_status_update));
答案 4 :(得分:0)
我遇到了同样的问题。如果使用www.twitter.com而不是twitter.com进行调用,Twitter的行为会有所不同。这是一个已知的错误。