我为我的实习构建了一个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)
答案 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'。