|
|
|
| Раньше, если я грузила страницу через file_get_contents, все работало нормально.
Теперь не работает. Думаю, все дело в прокси.
Допустим, пишу:
<?php
$content = file_get_contents('http://www.budshop.com.ua/content/blogcategory/62/153/');
echo $content;
?>
|
Выдает вот что: Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен. in Z:\home\avart.ua\www\c.php on line 2
Warning: file_get_contents(http://www.budshop.com.ua/content/blogcategory/62/153/) [function.file-get-contents]: failed to open stream: No error in Z:\home\avart.ua\www\c.php on line 2
Файерволл у меня отключен.
В php.ini:
allow_url_fopen = On
allow_url_include = Off
В поиске предлагается в случае с прокси использовать или сокеты, или curl-функции. Хочу вначале спросить: что лучше?
Если кто-то знает, скажите по одному и второму минусы и плюсы, чтобы я выбрала. | |
|
|
|
|
|
|
|
для: Лена
(03.12.2008 в 16:29)
| | сокеты и curl - вещи несравнимые.
Примерно как швейная машинка и костюм.
Выбрав сокеты Вам придется самостоятельно реализовывать весьма непростой протокол http (RFC-2616) .
Библиотека cURL - представляет собой уже готовую реализацию.
Выбор кагбэ очевиден. | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2008 в 16:48)
| | Со сложным я не справлюсь, это понятно.
Библиотеку cURL , получается, надо специально подключать? У меня третий Денвер, что-то я там ее не вижу.
Где взять эту библиотеку? Если ссылка есть, дайте, пожалуйста. | |
|
|
|
|
 109.8 Кб |
|
|
для: Лена
(03.12.2008 в 17:30)
| | - | |
|
|
|
|
|
|
|
|
для: Trianon
(03.12.2008 в 18:27)
| | Скачала пакет расширений Денвера, установила.
Раскомментировала в php.ini строчку: extension=php_curl.dll
Там же extension_dir = "/usr/local/php5/ext"
Проверила: в C:/Windows/system32/ у меня есть файлы ssleay32.dll и libeay32.dll, туда же бросила php_curl.dll.
Вызвала phpinfo() - curl там есть.
<?php
$ch = curl_init("http://www.budshop.com.ua/content/blogcategory/62/153/");
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
|
example_homepage.txt - пустой, сама страница тоже пустая, в результирующем коде такое:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251"></HEAD>
<BODY></BODY></HTML>
|
| |
|
|
|
|
|
|
|
для: Лена
(04.12.2008 в 11:54)
| | стоп, а прокси-то у Вас какой?
В свойствах браузера что прописано? | |
|
|
|
|
|
|
|
для: Trianon
(04.12.2008 в 11:59)
| | Вам нужно цифры сказать? В смысле номер порта?
А если я скажу эти цифры, это будет безопасно? Никто потом по этим цифрам не сможет подключиться? | |
|
|
|
|
|
|
|
для: Лена
(04.12.2008 в 12:06)
| | можете вписать сюда адрес и порт, не обнародуя их .
<?php
function get_url($url)
{
$proxy_address = "proxy";
$proxy_port = "3128";
$r = curl_init();
curl_setopt($r, CURLOPT_NOPROGRESS, 0);
curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($r, CURLOPT_URL, $url);
curl_setopt($r, CURLOPT_URL, $url);
curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
$res = curl_exec($r);
return $res;
}
echo get_url("http://ya.ru");
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(04.12.2008 в 12:09)
| | Получилось, спасибо.
У вас строчка повторяется: curl_setopt($r, CURLOPT_URL, $url);
По вот этому
curl_setopt($r, CURLOPT_NOPROGRESS, 0);
curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
есть вопрос: Что такое CURL-трансфер? | |
|
|
|
|
|
|
|
для: Лена
(04.12.2008 в 12:32)
| | и мануала:
CURLOPT_RETURNTRANSFER: При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.
А повторяющаяся строчка - случайно. Когда прокси добавлял, дважды скопировал. Рука дрогнула | |
|
|
|