资源ID#3不使用MySQL

时间:2014-12-16 13:27:11

标签: php mysql curl twitter

我为我的实习构建了一个brandchecker。其中一个部分是您输入名称,检查员在Twitter上检查是否使用了用户名。这是我制作的代码(file_get_contents不能在我的服务器上运行):

<?php
$ch = curl_init(); 
$timeout = 0; 
curl_setopt ($ch, CURLOPT_URL, "https://twitter.com/users/username_available?username=".$z); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$twitter_contents = curl_exec($ch);
curl_close($ch);

echo $ch;
?>

$z定义在我检查Facebook的用户名代码之上。它被定义为人们输入的潜在公司名称。

echo $ch;输出资源ID#3。在任何地方,人们都在谈论这不是一个错误,而是一个需要通过var_dump()拉出的MySQL结果。但正如您所看到的,我不是从MySQL中提取数据,而是从Twitter.com提取数据。

Facebook检查器也使用cURL,它运行完美。是的,我已将$ch与其他变量相关联。

有没有人能解决我的问题?

修改:我刚试了echo(var_dump($ch));,又返回了resource(3) of type (Unknown)

1 个答案:

答案 0 :(得分:0)

你回应错误的结果。在您的代码中,您使用以下代码将结果加载到$twitter_contents

 $twitter_contents = curl_exec($ch);

如果你要改变你的回声,它应该有效:

echo $twitter_contents;

为了解释我的答案,$ ch是你的Curl,这是一个不返回实际页面的函数。它返回一个资源,curl_exec获取页面的实际内容并将结果加载到变量中。然后你可以用来做其他事情。


好的,经过一些评论后,我想出了这个并且它有效......有点......

    $url = "https://twitter.com/users/username_available?username=test"; 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $result['contents']=curl_exec($ch);
    $result['info']=curl_getinfo($ch);
    curl_close($ch);
    echo $result['contents'];

我们很想念推特需要的'CURLOPT_SSL_VERIFYPEER'。