|
автор: Zebra (13.09.2004 в 00:37) |
|
| Мне нужно открыть html файл и найти к примеру что находится между <title> </title> | |
|
|
|
|
автор: Zebra (13.09.2004 в 02:15) |
|
|
для: Zebra
(13.09.2004 в 00:37)
| | Придумал ! :) а есть ли еще какие нибудь красивые решения?
Может есть какие нибудь встроенные функции ???
// чтение файла в строку
$stroka = join ('' , file("путь к файлу" ));
// Определяем позицию <title>
$string_1 = strpos("$stroka", "<title>");
$string_2 = strpos("$stroka", "</title>");
// Определяем позицию </title>
$dlina_stroki = $string_2-$string_1-7;
// Вычисляем длину строки заключенную между тегами <title></title>
$title = substr("$stroka", $string_1+7, $dlina_stroki);
Echo "$title"; | |
|
|
|
|
автор: Zebra (13.09.2004 в 04:08) |
|
|
для: Zebra
(13.09.2004 в 02:15)
| | В предедущем примере переменной $title передавалось ХЗ что если тегов <title> небыло или был один из них.
// чтение файла в строку
// join ('' тут две одинарные кавычки!!!
$stroka = join ('' , file("путь к файлу" ));
// Определяем позицию <title>
$string_1 = strpos("$stroka", "<title>");
// Определяем позицию </title>
$string_2 = strpos("$stroka", "</title>");
// Защита от глюка если нет тегов </title> или есть один из тегов
If ($string_1 > 0)
{
// Вычисляем длину строки заключенную между тегами <title></title>
$dlina_stroki = $string_2-$string_1-7;
}
else
{
// dlina_stroki= -1; -1 от балды можно -52454
$dlina_stroki= -1;
}
// Защита от глюка если нет тегов </title>
If ($dlina_stroki < 0) { $title = "Нет тегов title "; }
else{
$title = substr("$stroka", $string_1+7, $dlina_stroki);} | |
|
|
|
|
автор: Zebra (13.09.2004 в 04:31) |
|
|
для: Zebra
(13.09.2004 в 04:08)
| | Эх скоро на работу :(
так народ сеня ночь не спал как следствие не покупайте ВАЗовскую классику седнешней сборки коробки будут шуметь а то и вобще накроются :))
Кто нить подскажите если нужно обработать теги < title > и тег
< card title=" ">
...
...
<card>
И чтобы скрипт переменной $title передавал значение заключенное между < card title=" и ">
Я думаю как избежать ошибок ?
Ведь комбинация "> может встречатся сотни раз
Разве что сразу после "> дописывать пустой тег <p></p>
Вероятность того что "><p></p> встретится в обычном html коде наверно стремиться к 0. | |
|
|
|
|
|
|
|
для: Zebra
(13.09.2004 в 04:31)
| | Здесь без регулярных выражений действительно сложно обойтись:
<?php
// имя файла
$filename = "read.html";
// открываем файл
$file = fopen($filename, "r");
// читаем его содержимое в буффер
$buffer = fread($file, filesize($filename));
// закрываем файл
fclose($file);
// Определяем позицию <title>
$pattern = "/<[\s]*card[\s]*title[\s]*=[\s]*\"([^\"]*)\"[\s]*>/i";
preg_match($pattern,$buffer,$out);
echo $out[1];
?>
|
http://www.softtime.ru/group/id_group=3 | |
|
|
|
|
|
|
|
для: Zebra
(13.09.2004 в 02:15)
| | Вообще говоря оперирование непосредственно строками, это действительно самый быстрый способ, но если в тэгах < title > имеются пробелы, скрипт не сработает, в этом случае более оправдано использование регулярных выражений:
<?php
// имя файла
$filename = "read.html";
// открываем файл
$file = fopen($filename, "r");
// читаем его содержимое в буффер
$buffer = fread($file, filesize($filename));
// закрываем файл
fclose($file);
// Определяем позицию <title>
$pattern = "/<[\s]*title[\s]*>([^<]*)<[\s]*\/[\s]*title[\s]*>/i";
preg_match($pattern,$buffer,$out);
echo $out[1];
?>
|
PS Но это более медленный вариант, хотя более надёждый, так как учитывает все возможные случаи.
http://www.softtime.ru/group/id_group=3 | |
|
|
|