Как отпарсить кусок инфы

AG
На сайте с 24.04.2007
Offline
115
1286

Вопрос:

Есть вот такой код


<tr><td colspan="2" align="right">

текст1 <img src='img/img1.gif'><br>
текст2 <img src='img/img1.gif'><br>

</td></tr>

Нужно выдернуть


текст1 <img src='img/img1.gif'><br>
текст2 <img src='img/img2.gif'><br>

Пишу:

$next_pattern3="/<td colspan=\"2\" align=\"right\">(.*)<\/td>/i";

preg_match_all($next_pattern3, $page_string, $contact);

echo $contact[1][0];

Пусто, нет ничего. Может паттерн криво составлен? Или влияет то, что есть кавычки ( ' ) в тексте?

Подскажите, кто в теме.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1


$buf = file_get_contents('file.txt');
preg_match_all('@<tr><td colspan="2" align="right">\r\n.*?\r\n</td></tr>@s', $buf, $ok);
$result = array_unique($ok[0]);
$result = str_replace('<tr><td colspan="2" align="right">', '', $result);
$result = str_replace('</td></tr>', '', $result);
foreach($result as $n)
{
echo (''.$n.'<br />');

}
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
AG
На сайте с 24.04.2007
Offline
115
#2

Что-то не работает код, написанный вами (

Вставлял его в свой и просто, только ваш... никак, вообще ничего не выводит.

PS: Вопрос снят, добавил s в паттерн /... /is заработало.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3
Что-то не работает код, написанный вами (

С куском кода который Вы тут запостили он работает. Поэтому в след. раз ставьте задачу точнее.

А "s" показывает на то, что информация будет поступать в многострочном режиме.

Коля Дубр
На сайте с 02.03.2005
Offline
153
#4


<?
ob_start();
?>
<tr><td colspan="2" align="right">

текст1 <img src='img/img1.gif'><br>
текст2 <img src='img/img1.gif'><br>

</td></tr>
<tr><td colspan="2" align="right">

текст3 <img src='img/img1.gif'><br>
текст4 <img src='img/img1.gif'><br></td></tr>
<?
$string = ob_get_clean();
preg_match_all('~<tr><td colspan="2" align="right">[\n\r]*(.*?)[\n\r]*</td></tr>~s', $string, $matches);
echo "<pre>".htmlspecialchars(print_r($matches[1],1))."</pre>";
?>

Как-то так...

В Вашем примере не хватает модификатора s, без него перевод строки не ловится точкой.

Офф. Цифры в именах переменных - дурной тон. При составлении регулярки удобней использовать в качестве делимитра тильду (или собачку, как LEOnidUKG), если в теле шаблона есть слэш, а литерал с шаблоном удобней заключать в одинарные кавычки, если в теле шаблона используются двойные. Иначе появляются ошибки с экранированием.

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
[Удален]
#5

ребята помогите пожалуйста, вообщем проблема следующая:

есть переменная $format_desc

$format_desc = preg_replace('!http://news.google.com/news/url?.*?url=!s', PATH.'/includes/redirect.php?url=', $format_desc);

это выдергивает урл новости и ставит через редирект его

нужно сделать чтобы из такого http://news.google.com/news?sourceid=navclient&ie=UTF-8&rls=GGLG,GGLG:2005-22,GGLG:en&ncl=1136516254&hl=en делало /includes/redirect.php?url=http://news.google.com/news?sourceid=navclient&ie=UTF-8&rls=GGLG,GGLG:2005-22,GGLG:en&ncl=1136516254&hl , но при этом ncl=1136516254 динамический параметр тоесть меняется постоянно.

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