php - 不使用 MySQL 的资源 ID #3

标签 php mysql curl twitter

我正在为我的实习构建一个品牌检查器。它的一部分是您输入名称的地方,检查器会在 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)

最佳答案

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

 $twitter_contents = curl_exec($ch);

如果您将 echo 更改为此,它应该可以工作:

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

显然,我们缺少 Twitter 需要的“CURLOPT_SSL_VERIFYPEER”。

关于php - 不使用 MySQL 的资源 ID #3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505751/

相关文章:

php - 编写 PHP 操作码并执行。怎么做?

php - 内部 gd 字体 () 不可用仅使用 1-5

php - 给出了mysql bool 值,但结果显示

php - 实现接口(interface)和自动加载类

kubernetes 上的 Mysql 服务器不会重新启动

mysql - JOINing 后旋转表不正确?

PHP - 如何将 Curl 与 Kerberos 一起使用

php - 类 CURLFile 的对象无法转换为字符串

javascript - 在现有 session 中创建计算

python - 需要从curl迁移到pycurl的帮助