esergey
Вот работающая конструкция:
PHP код:
<?
$fp = fopen("http://site.ru/","r");
$content = "";
if ($fp) {
while (!feof ($fp)) {
$content .= fgets ($fp, 102400);
}
}
fclose($fp);
$titles = ereg("<title>(.*)</title>",$content,$title);
$title_text = $title[1];
echo $title_text;
echo "<br><br>";
$bodys = ereg("<body leftmargin=\"4\" topmargin=\"4\" marginwidth=\"4\" marginheight=\"4\">(.*)</body>",$content,$body);
$body_text = $body[1];
$search = array ("'<script[^>]*?>.*?</script>'si", // Вырезается javascript
"'<[\/\!]*?[^<>]*?>'si", // Вырезаются html-тэги
"'([\r\n])[\s]+'", // Вырезается пустое пространство
"'&(quot|#34);'i", // Замещаются html-элементы
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&(reg|#174);'i",
"'&(#8226);'i",
"'&(#8212);'i",
"'&(#8249);'i",
"'&(#8250);'i",
"'&#(\d+);'e"); // вычисляется как php
$replace = array ("",
"",
" ",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
chr(174),
chr(149),
chr(151),
chr(139),
chr(155),
"chr(\\1)");
$text = preg_replace ($search, $replace, $body_text);
echo $text;
echo "<br><br>";
$filename = $_SERVER['PHP_SELF'];
// $filename = $_SERVER['SCRIPT_FILENAME'];
echo $filename;
?>
$fp = fopen("http://site.ru/","r"); //считывание сайта по инету
На самом деле открывается только один файл index.htm, по сайту скрипт не ходит и не пытается открывать другие файлы.
$filename = $_SERVER['PHP_SELF']; - выводит имя php-скрипта, а не открытый для обработки файл.
$filename = $_SERVER['SCRIPT_FILENAME']; - аналогично, только путь до имени скрипта включает ещё и вышестоящие директории.