Как вытянуть весь HTML код страницы в одну строчку?

12
M7
На сайте с 14.04.2007
Offline
98
6992

Здравствуйте.

Скажите, пожалуйста, какой программой можно вытянуть весь HTML код страницы в одну строчку?

Например, так как это сделано на Яндексе.

Alek$
На сайте с 25.06.2008
Offline
34
#1

Простейший php скрипт

<?php
$c = file_get_contents($_GET['f']);
$c = str_replace("\n", '', $c);
file_put_contents($_GET['f'], $c);
echo $c;
?>

При обращении http://example.com/1line.php?f=test.html

Убирает переносы строк из test.html

Google Cache Dumper & Bing Cache Dumper (/ru/forum/479980) RegSubmitter - Регистратор аккаунтов в социальных закладках (/ru/forum/300978) Мой блог (http://nevkontakte.org.ru).
Dimid
На сайте с 03.12.2006
Offline
74
#2

mixail77, а что тут сложного то?

можно сделать обычную замену, для этого подойдёт обычный блокнот. или тот же word dreamweaver

M7
На сайте с 14.04.2007
Offline
98
#3
Dimid:
mixail77, а что тут сложного то?
можно сделать обычную замену, для этого подойдёт обычный блокнот. или тот же word dreamweaver

Замена это конечно хорошо, но мне нужно немножко другое либо вытянуть весь код (текст) либо убрать все межстрочные пробелы.

Обычно всё руками делаю, но иногда терпежа не хватает :)

Alek$
На сайте с 25.06.2008
Offline
34
#4

mixail77,

Дубль два:


<?php
$c = file_get_contents($_GET['f']);
$c = preg_replace("#^\s+#", '', $c);
file_put_contents($_GET['f'], $c);
echo $c;
?>
tommy-gung
На сайте с 22.11.2006
Offline
304
#5

функция trim();

Здесь не могла быть ваша реклама
Rulin
На сайте с 16.01.2008
Offline
143
#6

вот написал


// Путь до html файла
$filename="./index.html";

// Читаем Файл
$fp = fopen($filename, "r");
$html = fread($fp, filesize($filename));
fclose($fp);

// Паттерн для удаления переводов строк (для windows и unix)
// Паттерн для удаления нескольких пробелов подряд
// Паттерн для удаления пробела между тегами
$array_patter = array('/(\r\n|\r|\n)/','/\s{2,}/','/>\s</');
$array_replace = array(""," ","><");

$html=preg_replace($array_patter,$array_replace,$html);

// Записываем результат в файл
$fp = fopen ($filename, "w");
fwrite($fp, $html);
fclose($fp);
Bitcoin Debit Card
Alek$
На сайте с 25.06.2008
Offline
34
#7

Rulin, Третий паттерн некорректен, пример:

<a href="http://bla-bla.com">bla-bla</a> <a href="http://ytsuken.com">Ytsuken</a>

Результат - ссылки сливаются.

Опять таки, задача была убрать пробелы в начале строк, а не вообще все

Rulin
На сайте с 16.01.2008
Offline
143
#8
Alek$:
Rulin, Третий паттерн некорректен, пример:

да, тогда без третьего паттерна


// Путь до html файла
$filename="./index.html";

// Читаем Файл
$fp = fopen($filename, "r");
$html = fread($fp, filesize($filename));
fclose($fp);

// Паттерн для удаления переводов строк (для windows и unix)
// Паттерн для удаления нескольких пробелов подряд
$array_patter = array('/(\r\n|\r|\n)/','/\s{2,}/');
$array_replace = array(""," ");

$html=preg_replace($array_patter,$array_replace,$html);

// Записываем результат в файл
$fp = fopen ($filename, "w");
fwrite($fp, $html);
fclose($fp);

а тогда получается что единичные пробелы удалять вообще нельзя (даже в начале строки) т.к. в следующем примере сольються два слова

<div>The PHP development team is proud to announce the first alpha release of the upcoming

minor version update of PHP</div>
[Удален]
#9

мде. вот правильный вариант

$string = preg_replace("#\\s+#ism"," ",$string);

echo $string;

[Удален]
#10

Обычным вордом.

Серия автозамен "^P " на "^P" для убиения пробелов после символа перевода строки, затем финальная замена "^p" на пробел.

Морочиться с php имеет смысл, когда нужно переконвертировать сотни страниц. Когда вопрос создания одной страницы - вордовые автозамены.

mrFatCat добавил 31.08.2008 в 17:01

bearman, если регулярками, то для символа конца строки надежней использовать PHP_EOL - он одинаково отрабатывает и на юниксах, и на виндах.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий