Forum Webscript.Ru

Программирование => PHP => Тема начата: kiska от 10 Июля 2002, 12:22:46

Название: Копирование текста через рег. выр.
Отправлено: kiska от 10 Июля 2002, 12:22:46
Подскажите пожалуйста как сделать копирование участка текста  между определенными тегами из htm файла. Когда я запускаю свою функцию, то она находит  их только когда они расположены в одной строке, как это исправить?

function poisk()
{
$date=date("md");
$qw=fopen(/art/$date.htm","r");
$data=file("/art/$date.htm");
$data1=preg_grep("%
(.*)%si",$data);
   if(!$data1)
   echo "Тег не найден";
else
   echo "Тег найден, текст: $data1[1]";


}:eek:
Название: Копирование текста через рег. выр.
Отправлено: Alexandr от 10 Июля 2002, 12:57:48
Надо так:

function poisk()
{
$date=date("md");
$qw=fopen(/art/$date.htm","r");
$data=fread($qw, filesize("/art/$date.htm"));
preg_match("!(.*?)!si", $data, $ok);
if(count($ok)>1) foreach($ok => $v) echo $v."

";
Название: Копирование текста через рег. выр.
Отправлено: kiska от 10 Июля 2002, 13:50:02
Большое спасибо, я его немного подправило и теперь все работает!
Название: Копирование текста через рег. выр.
Отправлено: kiska от 10 Июля 2002, 14:26:17
Еще один вопрос:
почему , когда я потом заношу найденное значение в файл там оказывается два одинаковых фрагмента текста?
Название: Копирование текста через рег. выр.
Отправлено: AlieN от 10 Июля 2002, 14:35:28
kiska
Из Мануала($matches в твоём случае это $ok):
If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.
Название: Копирование текста через рег. выр.
Отправлено: kiska от 10 Июля 2002, 14:55:46
Спасибо за помощь.