Я создаю бренд-чекер для моей стажировки. Одна из его частей — это то, где вы вводите имя, и средство проверки проверяет в Твиттере, взято имя пользователя или нет. Вот код, который я сделал (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;
выводит идентификатор ресурса № 3. Везде люди говорят о том, что это не ошибка, а результат MySQL, который нужно проверить var_dump()
, Но, как вы можете видеть, я извлекаю данные не из MySQL, а из Twitter.com.
Программа проверки Facebook также использует cURL и работает безупречно. И да, я выключился $ch
с другими переменными.
У кого-нибудь есть решение моей проблемы?
Редактировать: Я только что попробовал echo(var_dump($ch));
и вернулся resource(3) of type (Unknown)
Вы повторяете неправильный результат. В вашем коде вы загружаете результат в $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», в котором нуждается твиттер .. очевидно.
Других решений пока нет …