Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新Twitter状态:字符转义和URL_Php_Api_Twitter - Fatal编程技术网

Php 更新Twitter状态:字符转义和URL

Php 更新Twitter状态:字符转义和URL,php,api,twitter,Php,Api,Twitter,我将POST变量中的文本从我网站上的表单传递到Twitter,并将此消息保存在我自己的网站上。当我在我的网站上查看条目时,它绝对是好的。然而,在某些情况下,当twitter更新用户状态的消息中有一个撇号,但没有撇号时,这可以在用户状态上看到 当我在twitter站点上更新我的twitter状态时,不会发生这种情况。所以我想知道有没有一种方法可以让我把文字传递给twitter 我目前正在做这件事,我利用了这个很棒的Twitter类 此外,将URL传递给twitter用于自动链接URL,但现在它只显

我将POST变量中的文本从我网站上的表单传递到Twitter,并将此消息保存在我自己的网站上。当我在我的网站上查看条目时,它绝对是好的。然而,在某些情况下,当twitter更新用户状态的消息中有一个撇号,但没有撇号时,这可以在用户状态上看到

当我在twitter站点上更新我的twitter状态时,不会发生这种情况。所以我想知道有没有一种方法可以让我把文字传递给twitter

我目前正在做这件事,我利用了这个很棒的Twitter类

此外,将URL传递给twitter用于自动链接URL,但现在它只显示为文本

推特在过去一个月里是否做出了可能导致上述情况发生的改变?如果不是,我如何克服这个问题

谢谢大家

编辑 更多代码:

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']; 
}

您可以为此使用htmlentities函数

$success = $twitterObj->post_statusesUpdate(array('status' => htmlentities($_POST['message']).$URL.$key));
或htmlspecialchars:

$success = $twitterObj->post_statusesUpdate(array('status' => htmlspecialchars($_POST['message']).$URL.$key));

您可以为此使用htmlentities函数

$success = $twitterObj->post_statusesUpdate(array('status' => htmlentities($_POST['message']).$URL.$key));
或htmlspecialchars:

$success = $twitterObj->post_statusesUpdate(array('status' => htmlspecialchars($_POST['message']).$URL.$key));

您使用的是最新版本吗?不确定问题出在哪里,因为库的一个单元测试使用了单引号(以及其他随机字符)


您使用的是最新版本吗?不确定问题出在哪里,因为库的一个单元测试使用了单引号(以及其他随机字符)


听起来您的php配置已经启用了
magic\u quotes\u gpc
,它会自动在所有输入(例如,您的POST值)上调用addslashes。我读过php手册中的addslashes/stripslashes。

听起来你的php配置已经打开了
magic\u quotes\u gpc
,它会自动调用所有输入的addslashes(例如,你的POST值)。我已经阅读了php手册中的addslashes/stripslashes。

收到帖子后,但在通过curl发送之前,请使用
stripslashes删除斜线

urlencode(stripslashes($posted_status_update));

收到帖子后,但在通过curl发送之前,请使用
stripslashes

urlencode(stripslashes($posted_status_update));

我也有同样的问题。如果使用www.Twitter.com而不是Twitter.com调用,Twitter的行为会有所不同。这是一个已知的错误


我也有同样的问题。如果使用www.Twitter.com而不是Twitter.com调用,Twitter的行为会有所不同。这是一个已知的错误


刚刚尝试了htmlspecialchars,但没有成功,因为所有字符(如双引号和单引号)仍在转义!刚刚试过,它实际上增加了两倍于以前的背部割伤(好的,然后使用urlencode函数?因为如果类使用url参数发送,可能是这样的!:)这也不起作用,因为我得到:“有趣的时间%5C%27s+lol”,当我键入“有趣的时间的lol”时-这很奇怪。我不知道问题是我如何传递字符串还是字符串本身??只是尝试了htmlspecialchars-但它不起作用,因为所有字符(如双引号和单引号)仍在转义!刚刚试过,它实际上增加了两倍于以前的背部割伤(好的,然后使用urlencode函数?因为如果类使用url参数发送,可能是这样的!:)这也不起作用,因为我得到:“有趣的时间%5C%27s+lol”,当我键入“有趣的时间的lol”时-这很奇怪。我不知道问题是我如何传递字符串还是字符串本身??谢谢你的回复Jaisen。我没有使用来自Git的最新版本,但我现在正在使用,并且做了另一个测试,我似乎得到了同样的结果。我确信你的代码没有问题,因为当你使用单引号时,它可能对你的人很好。我肯定它不是twitter,所以剩下的是我和我的代码!我已将我的问题与我如何使用你们的课程进行了编辑。也许有什么不对劲?如果没有,我还能尝试什么呢?我真的很感谢你写了这些课程——这不足以表示感谢,至少是一个好的姿态!:)嘿,格雷西亚斯。(需要15个字符)谢谢你的回复,杰森。我没有使用来自Git的最新版本,但我现在正在使用,并且做了另一个测试,我似乎得到了同样的结果。我确信你的代码没有问题,因为当你使用单引号时,它可能对你的人很好。我肯定它不是twitter,所以剩下的是我和我的代码!我已将我的问题与我如何使用你们的课程进行了编辑。也许有什么不对劲?如果没有,我还能尝试什么呢?我真的很感谢你写了这些课程——这不足以表示感谢,至少是一个好的姿态!:)嘿,格雷西亚斯。(需要15个字符)先生,你是个天才。我在推特上用了斜杠,效果很好。先生,你是个天才。我在推特上使用了斜杠,效果很好。