Получить HTML-код сайта необходимо, например, при граббинге сайта. Но у меня был случай забавнее… Всем известный БашОрг забанил моего провайдера интернета за какие-то просчеты (вероятно, была дос/ддос атака от абонентов моего прова с общим IP). То есть – башорг у меня не открывался, а все остальное открывалось.
Баш почитать же очень хотелось. Поэтому я написал очень маленький и простой скрипт, которые хавает код башорга и выводит его в браузер. Совершенно аналогичный код используется для получения содержимого страницы при парсинге сайта.
<?php
$file = fopen («http://bash.org.ru», «r»);
$str = «»;
while (!feof ($file)){
$str .= fread ($file, 512);
}
fclose ($file);
echo $str;
?>
Сразу уточню, что чтение сайта приведенным здесь образом возможно только в случае, если в fopen можно передать адрес страницы (файла), не находящегося на данном сервере (там же где и запускается скрипт). Это регулируется в настройках интерпретатора PHP.
Что здесь происходит? Все точно так же, как если бы нам надо было прочитать файл. Сначала открываем баш для чтения (флаг «r»). Заводим переменную $str, в которую и запишем весь сайт. Записываем в цикле данные в $str по 256 байт, пока не кончится файл (здесь – удаленная страница). Закрываем файл и выводим на экран.
P.S. Запустив его, кто-то удивится – почему все так уродски выглядит и напоминает баш довольно отдаленно? Потому, что файл стилей (css) не читается и не подключается. Вернее – мне было просто влом это делать, для чтения он не нужен ;)