curl и вконтакте - Вопросы и ответы, обсуждения - Ваши вопросы по Web-программированию только в данном разделе
03.02.2015, 02:34
#1
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
curl и вконтакте
Здравствуйте.
Имеется такой стандартный код:
Код:
<?php
if( $curl = curl_init() ) {
curl_setopt($curl,CURLOPT_URL,'http://vk.com');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$out = curl_exec($curl);
echo $out;
curl_close($curl);
}
?>
При запросе сайта ВК - приходит пустая страница. Если запрашивать какой-нибудь другой сайт - то приходит содержимое сайта.
Подскажите пожалуйста, есть ли возможность получить содержимое страниц Вконтакте? Интересует с целью подстановки АПИ-ссылок для получения необходимого массива текста.
П.С. Бесплатный hostinger. Версии PHP пробовал как 5.5 так 5.3 - результат одинаков.
03.02.2015, 20:41
#2
Разведчик
Регистрация: 04.12.2012
Сообщений: 5
Популярность: 1105
Сказал(а) спасибо: 1
Поблагодарили 23 раз(а) в 19 сообщениях
Re: curl и вконтакте
Добавил в Ваш код одну строку для того чтобы понять в чем причина
Код:
<?php
if( $curl = curl_init() ) {
curl_setopt($curl,CURLOPT_URL,'http://vk.com');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_HEADER,true);
$out = curl_exec($curl);
echo $out;
curl_close($curl);
}
?>
Выдало:
Код:
HTTP/1.1 302
Found Server: Apache
Date: Tue, 03 Feb 2015 17:33:46 GMT
Content-Type: text/html; charset=windows-1251
Content-Length: 0
Connection: keep-alive
X-Powered-By: PHP/3.10969
Set-Cookie: remixlang=0; expires=Fri, 29 Jan 2016 16:34:07 GMT; path=/; domain=.vk.com
Location: http://m.vk.com/
Причина в том, что сервер VK из-за отсутствующего параметра "user-agent" перенаправил в мобильную версию.
Здесь добавил параметр User-agent из браузера Mozilla
Код:
<?php
if( $curl = curl_init() ) {
curl_setopt($curl,CURLOPT_URL,'http://vk.com');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
$out = curl_exec($curl);
echo $out;
curl_close($curl);
}
?>
Пользователь сказал cпасибо:
04.02.2015, 02:07
#3
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
Re: curl и вконтакте
Apo-S , благодарю. Ваше предложение помогло в решении первой задачи.
Теперь попробовал поменять ссылку на АПИшную и опять словил пустую страницу:
Код:
<?php
if( $curl = curl_init() ) {
curl_setopt($curl,CURLOPT_URL,'https://api.vk.com/method/users.get.xml?user_ids=1');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
$out = curl_exec($curl);
echo $out;
curl_close($curl);
}
?>
04.02.2015, 02:28
#4
Разведчик
Регистрация: 04.12.2012
Сообщений: 5
Популярность: 1105
Сказал(а) спасибо: 1
Поблагодарили 23 раз(а) в 19 сообщениях
Re: curl и вконтакте
Немного изменил код, чтобы просто глянуть что вернет
Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?
if($curl = curl_init('https://api.vk.com/method/users.get.xml?user_ids=1'))
{
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
var_dump(htmlspecialchars(curl_exec($curl)));
curl_close($curl);
}
?>
</body>
</html>
Вывело:
Код:
string(276) "<?xml version="1.0" encoding="utf-8"?> <response list="true"> <user> <uid>1</uid> <first_name>Павел</first_name> <last_name>Дуров</last_name> </user> </response> " "
Последний раз редактировалось Apo-S; 04.02.2015 в 02:40 .
Пользователь сказал cпасибо:
04.02.2015, 08:00
#5
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
Re: curl и вконтакте
Apo-S , подставил Ваш код. Получаю: string(0) "" .
04.02.2015, 16:40
#6
Разведчик
Регистрация: 04.12.2012
Сообщений: 5
Популярность: 1105
Сказал(а) спасибо: 1
Поблагодарили 23 раз(а) в 19 сообщениях
Re: curl и вконтакте
А если так? что выдаст?
Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?
if($curl = curl_init('https://api.vk.com/method/users.get.xml?user_ids=1'))
{
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
curl_setopt($curl, CURLOPT_HEADER, true);
curl_exec($curl);
curl_close($curl);
}
?>
</body>
</html>
Пользователь сказал cпасибо:
04.02.2015, 17:31
#7
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
Re: curl и вконтакте
Apo-S , пустоту.
[Ссылки могут видеть только зарегистрированные пользователи. ]
04.02.2015, 18:41
#8
Разведчик
Регистрация: 04.12.2012
Сообщений: 5
Популярность: 1105
Сказал(а) спасибо: 1
Поблагодарили 23 раз(а) в 19 сообщениях
Re: curl и вконтакте
А если без SSL?
Код:
<?
if($curl = curl_init('http://api.vk.com/method/users.get.xml?user_ids=1'))
{
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
curl_setopt($curl, CURLOPT_HEADER, true);
curl_exec($curl);
curl_close($curl);
}
?>
Последний раз редактировалось Apo-S; 04.02.2015 в 18:43 .
Пользователь сказал cпасибо:
04.02.2015, 18:44
#9
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
Re: curl и вконтакте
Apo-S , без SSL ошибку всегда выдавало:
[Ссылки могут видеть только зарегистрированные пользователи. ]
04.02.2015, 19:00
#10
Разведчик
Регистрация: 04.12.2012
Сообщений: 5
Популярность: 1105
Сказал(а) спасибо: 1
Поблагодарили 23 раз(а) в 19 сообщениях
Re: curl и вконтакте
Интересно получается, у меня работает как с ssl, так и без него
Ошибку выдает такую, как будто запрос отправлялся не на сервер VK
Пробовали использовать сокеты?
Код:
<?
$fp = fsockopen("api.vk.com", 80, $errno, $errstr, 5);
if(!$fp)
{
echo "$errstr ($errno)<br>\n";
} else
{
$headers = array();
$headers[] = "GET /method/users.get.xml?user_ids=1 HTTP/1.1";
$headers[] = "Host: api.vk.com";
$headers[] = "User-Agent: Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0";
$headers[] = "Connection: close";
fwrite($fp, implode("\r\n", $headers)."\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
Пользователь сказал cпасибо:
04.02.2015, 23:47
#11
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
Re: curl и вконтакте
Apo-S , получилось тоже, что и в прошлый раз(
05.02.2015, 08:48
#12
Разведчик
Регистрация: 04.12.2012
Сообщений: 5
Популярность: 1105
Сказал(а) спасибо: 1
Поблагодарили 23 раз(а) в 19 сообщениях
Re: curl и вконтакте
Значит пишите в техподдержку, или подождите пока они мне ответят)
Даже через file_get_content в том хостинге не загружает
хотя на google отправляется без проблем
Добавлено через 5 часов 12 минут
Ответ техподдержки
Цитата:
Здравствуйте,
Скорее всего проблема в том, что на бесплатном тарфие закрыты данные подключения.
Если Вам нужно узнать больше информации, пожалуйста, не стесняйтесь связываться с нами.
Всего наилучшего!,
Иван Р.
Сотрудник службы поддержки
Последний раз редактировалось Apo-S; 05.02.2015 в 14:02 .
Пользователь сказал cпасибо:
08.02.2015, 16:25
#13
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
Re: curl и вконтакте
Apo-S , какие-то другие бесплатные хостинги сможете порекомендовать для выполнения данной задачи?
08.02.2015, 18:05
#15
Пехотинец
Регистрация: 27.12.2011
Сообщений: 73
Популярность: 2425
Сказал(а) спасибо: 334
Поблагодарили 57 раз(а) в 27 сообщениях
Re: curl и вконтакте
MembRupt , это я видел. Просто далеко не всех из них подойдут. Потому и спросил сразу тут "не отходя от кассы"
[
Ссылки могут видеть только зарегистрированные пользователи. ] не подошел. ещё хуже хостингера, тк то, что работало на хостингере там не работает.
Последний раз редактировалось NebesaBag; 09.02.2015 в 11:22 .
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:57 .