[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с регуляркой.
Lightt

Есть такой текст

$test = '<tr>
<th style="text-align:right;>test0</th>
<td style="" class="">
<p>
<a href="/test1/">test1</a><br>
<a href="/test2/">test2</a><br>
<a href="/test3/">test3</a><br>
<a href="/test4/">test4</a><br>
<a href="/test5/">test5</a>
</p>
</td>
</tr>'
;

Нужно вытащить test1,test2,test3,test4,test5.

Вот так срабатывает как нужно:
preg_match_all('|.*<a .*>(.*)</a>|', $test, $result);


Array
(
[
0] => Array
(
[
0] => test1
[1] => test2
[2] => test3
[3] => test4
[4] => test5
)

[
1] => Array
(
[
0] => test1
[1] => test2
[2] => test3
[3] => test4
[4] => test5
)

)


Но мне надо в регулярку добавить td и вот так он уже ничего не выводит:

preg_match_all('|<td .*>.*<a .*>(.*)</a></td>|', $test, $result);


P.s. как избавиться от 0 элемента?
buster
Цитата
preg_match_all('|<td .*>.*<a .*>(.*)</a></td>|', $test, $result);

может между </a> и </td> символы?
preg_match_all('|<td .*>.*<a .*>(.*)</a>.*</td>|', $test, $result);
Lightt
buster
Нет их там нет.
<a href="/test2/">test2</a><br>

И ваш вариант так же не срабатывает.
ASergey
Можно вот так
http://simplehtmldom.sourceforge.net/

include("inc/simple_html_dom.php");
$html = str_get_html($test);
$text = $html->find("p a");
foreach($text as $res){
echo $res->plaintext."\n";
}
Lightt
ASergey
blink.gif
Здорово) как раз то что нужно) спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.