|
|
|
| Есть скрипт который обрабатывает html-страничку , достает из нее ссылки и пихает их в бд . Исходный код обрабатываемой страницы получаю функцией file_get_contants(); .
на локалке все работает , а на хостинге - нет . Помогите !
ЗЫ, возможно пригодитя , allow_url_fopen = no , не знаю имеет ли это отношение к file_get_contants(); | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 14:32)
| | >ЗЫ, возможно пригодитя , allow_url_fopen = no , не знаю имеет ли это отношение к file_get_contants();
прямое | |
|
|
|
|
|
|
|
для: Trianon
(01.09.2009 в 14:33)
| | ну а что же тогда мне делать ? может есть замена этой функции ? подскажите пожалуйста | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 14:37)
| | идти в поиск.
Вообще-то с этого следовало бы начать. | |
|
|
|
|
|
|
|
для: Trianon
(01.09.2009 в 14:42)
| | Нашел в поиске следущее :
<?php
$fname = '/inner/api.php?op=allclans';
$fhost = 'www.haddan.ru';
$x = '';
$fp = fsockopen($fhost, 80, &$errno, &$errstr, 30) or die("could not connect");
fputs($fp, "GET $fname HTTP/1.0\r\n".
"Host: $fhost\r\n".
"Referer: http://www.neverlands.ru/\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01\r\n\r\n");
while (!feof($fp)) $x .= fgets($fp,128);
fclose($fp);
echo substr($x, strpos($x, "\r\n\r\n"));
?>
|
Можете обьяснить что к чему , и будет ли ЭТО у меня работать ? | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 14:46)
| | Я такого не советовал.
Я считаю, что для доступа к внешнему контенту нужно применять CURL. | |
|
|
|
|
|
|
|
для: Trianon
(01.09.2009 в 14:48)
| | Я никогда им не пользовался раньше . Можно пример скрипта , который действовал бы так как file_get_contants(); ?
curlcURL support enabled
cURL Information libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18
следовательно , то что написано при помощи curl должно бы работать ... уже хорошо | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 14:50)
| | если Вы правильно напишете имя функции, у Вас всё получится. | |
|
|
|
|
|
|
|
для: Trianon
(01.09.2009 в 15:00)
| | Да нет , это просто опечатка )
Просмотрел мануал по ПХП , вот что у меня получилось :
$res = curl_init();
$file = fopen("need.php", "w");
curl_setopt($ch, CURLOPT_URL, "http://some-site.ru");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
$string=curl_exec($ch);
curl_close($ch);
fclose($fp);
$string=str_replace('\n\r','','$string);
|
| |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 15:14)
| | Наверное вот так будет лучше :
$res = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://google.ru");
curl_setopt($ch, CURLOPT_HEADER, 0);
$string=curl_exec($ch);
curl_close($ch);
$string=str_replace('\n\r','','$string);
|
Правильно я делаю или нет ? | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 15:26)
| | не понял, зачем последняя строка.
И наверное CURLOPT_RETURNTRANSFER стоит всё же включить. | |
|
|
|
|
|
|
|
для: Trianon
(01.09.2009 в 15:34)
| | Впринцыпе , должно работать ...
<?php
$ch = curl_init();
$url="http://google.ru";
curl_setopt($ch, CURLOPT_URL, $url); // закидаем адрес странички
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER[USER_AGENT]); // говорим что мы браузер
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //непонятнгая строчка , но судя по виду - таймаут запроса
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // чтобы возвратило как строку а не вывело в браузер
curl_setopt($ch, CURLOPT_HEADER, 0); // заголовков нам не надо
$string=curl_exec($ch);
curl_close($ch);
$string=str_replace('\n\r',' ',$string); // приводим строку к виду строки , удаляем все переносы , хотя я могу ошибаться с комбинацией \n\r , точно не помню .
echo($string); // проверка , работает ли ) вывод в браузер
?>
|
Собственно , сейчас и проверю ) | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 15:45)
| | Порядок действий нарушен.
Нужно было сперва проверить, а потом уже показывать.
Зачем выкидывать MACовые переносы строк, я так и не понял.
Не понял бы, впрочем, даже если бы выкидывались обычные.
file_get_contents такого не делает. | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 15:45)
| | УРРАА!!! ЗАРАБОТАЛО !!!
Неплохое у меня знакомство с curl получилось , первый раз попробовал и все вышло !!!
Спасибо Trianon за помощь ! Кстати , последнюю строчку я уберу , ту которая выкидывает переносы .
Еще вопрос : а как проверить что все операции прошли ок ? | |
|
|
|
|
|
|
|
для: XaZzZi
(01.09.2009 в 15:56)
| | >Еще вопрос : а как проверить что все операции прошли ок ?
мануал по curl_exec() всё описывает.
С другой стороны, не получая заголовок, полной картины Вы не увидите. | |
|
|
|