Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: file_get_contents() не работает , помогите ...
 
 автор: XaZzZi   (01.09.2009 в 14:32)   письмо автору
 
 

Есть скрипт который обрабатывает html-страничку , достает из нее ссылки и пихает их в бд . Исходный код обрабатываемой страницы получаю функцией file_get_contants(); .
на локалке все работает , а на хостинге - нет . Помогите !

ЗЫ, возможно пригодитя , allow_url_fopen = no , не знаю имеет ли это отношение к file_get_contants();

  Ответить  
 
 автор: Trianon   (01.09.2009 в 14:33)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 14:32)
 

>ЗЫ, возможно пригодитя , allow_url_fopen = no , не знаю имеет ли это отношение к file_get_contants();

прямое

  Ответить  
 
 автор: XaZzZi   (01.09.2009 в 14:37)   письмо автору
 
   для: Trianon   (01.09.2009 в 14:33)
 

ну а что же тогда мне делать ? может есть замена этой функции ? подскажите пожалуйста

  Ответить  
 
 автор: Trianon   (01.09.2009 в 14:42)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 14:37)
 

идти в поиск.
Вообще-то с этого следовало бы начать.

  Ответить  
 
 автор: XaZzZi   (01.09.2009 в 14:46)   письмо автору
 
   для: Trianon   (01.09.2009 в 14:42)
 

Нашел в поиске следущее :
<?php   
$fname 
'/inner/api.php?op=allclans';   
$fhost 'www.haddan.ru';   
$x '';   
$fp fsockopen($fhost80, &$errno, &$errstr30) 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($xstrpos($x"\r\n\r\n"));   
?>

Можете обьяснить что к чему , и будет ли ЭТО у меня работать ?

  Ответить  
 
 автор: Trianon   (01.09.2009 в 14:48)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 14:46)
 

Я такого не советовал.
Я считаю, что для доступа к внешнему контенту нужно применять CURL.

  Ответить  
 
 автор: XaZzZi   (01.09.2009 в 14:50)   письмо автору
 
   для: 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 должно бы работать ... уже хорошо

  Ответить  
 
 автор: Trianon   (01.09.2009 в 15:00)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 14:50)
 

если Вы правильно напишете имя функции, у Вас всё получится.

  Ответить  
 
 автор: XaZzZi   (01.09.2009 в 15:14)   письмо автору
 
   для: 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:26)   письмо автору
 
   для: 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);

Правильно я делаю или нет ?

  Ответить  
 
 автор: Trianon   (01.09.2009 в 15:34)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 15:26)
 

не понял, зачем последняя строка.
И наверное CURLOPT_RETURNTRANSFER стоит всё же включить.

  Ответить  
 
 автор: XaZzZi   (01.09.2009 в 15:45)   письмо автору
 
   для: Trianon   (01.09.2009 в 15:34)
 

Впринцыпе , должно работать ...
<?php
$ch 
curl_init();
$url="http://google.ru";
curl_setopt($chCURLOPT_URL$url);  // закидаем адрес странички
curl_setopt($chCURLOPT_USERAGENT$_SERVER[USER_AGENT]); // говорим что мы браузер
curl_setopt($chCURLOPT_TIMEOUT10); //непонятнгая строчка , но судя по виду - таймаут запроса
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); // чтобы возвратило как строку а не вывело в браузер
curl_setopt($chCURLOPT_HEADER0); // заголовков нам не надо

$string=curl_exec($ch);
curl_close($ch);

$string=str_replace('\n\r',' ',$string);   // приводим строку к виду строки , удаляем все переносы , хотя я могу ошибаться с комбинацией \n\r , точно не помню .

echo($string); // проверка , работает ли ) вывод в браузер

?>

Собственно , сейчас и проверю )

  Ответить  
 
 автор: Trianon   (01.09.2009 в 15:52)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 15:45)
 

Порядок действий нарушен.
Нужно было сперва проверить, а потом уже показывать.

Зачем выкидывать MACовые переносы строк, я так и не понял.
Не понял бы, впрочем, даже если бы выкидывались обычные.
file_get_contents такого не делает.

  Ответить  
 
 автор: XaZzZi   (01.09.2009 в 15:56)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 15:45)
 

УРРАА!!! ЗАРАБОТАЛО !!!

Неплохое у меня знакомство с curl получилось , первый раз попробовал и все вышло !!!

Спасибо Trianon за помощь ! Кстати , последнюю строчку я уберу , ту которая выкидывает переносы .

Еще вопрос : а как проверить что все операции прошли ок ?

  Ответить  
 
 автор: Trianon   (01.09.2009 в 16:43)   письмо автору
 
   для: XaZzZi   (01.09.2009 в 15:56)
 

>Еще вопрос : а как проверить что все операции прошли ок ?
мануал по curl_exec() всё описывает.

С другой стороны, не получая заголовок, полной картины Вы не увидите.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования