парсер html

IliaK

Новичок
парсер html

Первый раз в жизни пишу парсер. Нужно из html-кода выделить заголовки (т.е. всё, что находится внутри тега <title>).

попробовал сделать так:

PHP:
<?php
$prodfile=readfile("file"); 
$title=preg_grep("#<title>(.*)</title>#", $prodfile);
echo $title[0];
?>
Однако он возвращает весь введённый текст.
Подскажите, пожалуйста, как это лучше реализовать.
Документацию уже читал.
 

insidex

флихтэръер
<?php
$prodfile=readfile("file");
preg_match_all("#<title>(.*)</title>#", $prodfile,$title);
echo $title[1][0];
?>
 

0xHH

Новичок
PHP:
$prodfile=file_get_contents("body.html"); 
preg_match("^<title>(.*)</title>^", $prodfile,$array);
print_r($array);
Вывод:

Array ( [0] => [1] => aaaaaaaaaa )
 

WP

^_^
Вам надо в цирке выступать))) С номером "сколько нужно участнегов пхпклуба чтобы написать пару строк?".
Итак приступим к разносу.
donflash
> preg_match_all
Мимо.
insidex
$prodfile=readfile("file");
preg_match_all("#<title>(.*)</title>#", $prodfile,$title);
echo $title[1][0];
Ты знаешь что возвращает функция readfile?
> скинь сюда пожалуйста $podfile.
Отжиг засчитан. А потом по нему сделал бы substr, да?
IliaK
PHP:
$data = file_get_contents('http://phpclub.ru/talk/showthread.php?s=&postid=630671#post630671');
preg_match('~<title>(.*?)</title>~si',$data,$matches);
$title = isset($matches[1])?$matches[1]:'';
var_dump($title);
 

IliaK

Новичок
WP

Спасибо :) Я чуть упростил:

PHP:
<?php
$data = file_get_contents('http://phpclub.ru/talk/showthread.php?s=&postid=630671#post630671);
preg_match('~<title>(.*?)</title>~si',$data,$matches);
echo $matches[1];
?>
 

WP

^_^
insidex
Дык перед постом надо проверять работоспособность)
IliaK
Ты не упросил, а изменил. Подумай что будет если регулярное выражение не будет найдено. Получишь Notice. Тебе это надо?
 
Сверху