Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Автоматическое получение html-кода страницы


Автор: dkirpa 28.1.2008, 13:57
Вопрос: есть урл, мне нужно посредствам своего скрипта записать исходный html-код в переменную ну и потом его уже обработать, можно ли такую затею как-нибудь осуществить?
Заранее спасибо за ответ.

Автор: Smith 28.1.2008, 14:22
http://ua2.php.net/manual/ru/function.file.php

Автор: dkirpa 28.1.2008, 14:26
премного благодарен

Автор: GorbunovDiman 9.9.2008, 15:38
smile  smile  smile  А как сделать чтобы после
Код

$fil="http://localhost/test";
$html = implode('', file ($fil));
$echo($html);
 
отображалось всё содержимое  страницы (картинки и тд), а не ошибки денвера
Цитата

Warning: file(localhost/test1) [function.file]: failed to open stream: No such file or directory in l:\home\localhost\www\new 2.php on line 9

Warning: implode() [function.implode]: Bad arguments. in l:\home\localhost\www\new 2.php on line 9


P.S
 кстати если из localhost/test убрать единственную картинку то всё работает!

Добавлено через 8 минут и 55 секунд
А если этой функции подставить значение
Код

$fil="http://localhost/np/new3.php?var=1%2023&col=red&siz=12";
$html = implode('', file ($fil));
$echo($html);

то тоже опять не работает!!! Но если убрать %20 (пробел) то всё опять работает!!!  smile  
Не знаю что делать! 

Автор: -=Ustas=- 9.9.2008, 16:14
GorbunovDiman, http://php.net/fsockopen

Автор: Sunvas 9.9.2008, 16:22
Получать содержимое УРЛа через file - страшно глупо. Это же может сервак повесить. Для внешних соединений существуют CURL и сокеты.

Автор: zibox86 9.9.2008, 18:18
А если через буферизацию сделать!?

Автор: snake12 9.9.2008, 18:47
file_get_contents

Автор: GorbunovDiman 10.9.2008, 09:52
Цитата

GorbunovDiman, http://php.net/fsockopen 

-=Ustas=-  Там всё на аглицком!  smile переведи а то сам не пойму

Цитата

Получать содержимое УРЛа через file - страшно глупо. Это же может сервак повесить. Для внешних соединений существуют CURL и сокеты.




Всё тоже самое и подробноооооооооооооо! smile  smile  smile  smile 

Автор: Sunvas 10.9.2008, 11:24
Цитата(GorbunovDiman @  10.9.2008,  09:52 Найти цитируемый пост)
Всё тоже самое и подробноооооооооооооо!

http://ua.php.net/manual/ru/function.curl-init.php

Автор: nerezus 10.9.2008, 11:30
Цитата

snake12, и ты туда же?
 И? Как по мне - самый верный вариант(ибо самый простой среди равносильных).


Цитата

работа file_get_contents и file зависит от настроенных wrapper'ов. настраиваются конфигом. при использовании не-выделенного хостинга - настраивается не программистом. вполне вероятно может не работать. это не считая вопроса таймаута.
 mysql модуль согласно такой логике тоже может отсутствовать. Однако в 99% случаев он есть ;)

А что касается таймаута - то советую почитать документацию ;)
Код

ini_set('default_socket_timeout',    2);  // ставим таймаут 2 секунды

Автор: teroni 10.9.2008, 11:45
Цитата(nerezus @  10.9.2008,  11:30 Найти цитируемый пост)
mysql модуль согласно такой логике тоже может отсутствовать. Однако в 99% случаев он есть ;)
За mysql как правило деньги плочены. При покупке хостинга указывается, что он там будет.
А вот wrapper ы в конфиге ставятся хостером, которому может взбрести в голову что угодно. В большинстве случаев они включены, но бывают красавцы-хостеры, которые их отключают.

Автор: nerezus 10.9.2008, 14:24
Цитата

но бывают красавцы-хостеры, которые их отключают.
 Смысл юзать хостинги с криворукими админами?
(Ибо по умолчанию оно как раз включено, а запрещать это нет никакого смысла, не путайте с allow_url_include)

В крайнем случае можно постучать в сапорт и попросить исправить.

Автор: GorbunovDiman 11.9.2008, 08:13
Цитата


http://ua.php.net/manual/ru/function.curl-init.php 


 smile Там сразу отдаётся браузеру.
А мне надо перед отдачей браузеру подкорректировать аштмл  код.
Для этого я и заводил переменную $html

Автор: nerezus 11.9.2008, 08:24
GorbunovDiman, тебе file_get_contents дал готовое решение.

Автор: GorbunovDiman 11.9.2008, 08:26
И на этой строке
Код

$ch = curl_init();



Пишет 
Цитата

Fatal error: Call to undefined function: curl_init() in l:\home\localhost\www\test.php on line 3


Добавлено через 3 минуты и 31 секунду
Цитата

GorbunovDiman, тебе file_get_contents дал готовое решение. 

Тока я его не заметил ! Объясните новичку!  smile  аналогичный
Код

$fil="http://localhost/test";
$html = implode('', file ($fil));
$echo($html);


Автор: nerezus 11.9.2008, 09:35
Цитата

  аналогичный
 Тебе не пример нужен, а учить основы PHP.

Для спрпавки: получать документацию по функции можно так:
http://php.net/file_get_contents

Автор: GorbunovDiman 11.9.2008, 13:09
                           smile 
nerezus Спасибо за ссылку. Она мне очень помогла! 
Просто заменил file на file_get_contents и убрал implode. И так :
Код


$html=file_get_contents($fil);



Все работает!!!
Всем огромное спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)