[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как регуляркой вытащить из строки все теги tr?
kaww
(<tr[^>]+?height:25px.*)?<\/table
kaww
$str = '
<table>
<tr><td></td></tr>
</table>
<table>
<tr style="height:25px">
<td>Бла бла</td>
</tr>
<tr style="height:25px">
<td>Бла бла</td>
</tr>
<tr style="height:25px">
<td>Бла бла</td>
</tr>
</table><table></table>'
;
preg_match("/(<tr[^>]+?height:25px.*?)\<\/table/", str_replace("\n", "",$str), $m);
var_dump($m[1]);
kristall
А пробовал выкусить из simple_html_dom нужную таблицу, а потом убить уже ненужный DOM
$html->clear(); 
unset($html);


Просто регулярки в отношении HTML часто ведут к продолжительному и безрезультатному сексу.

_____________
echo '<pre>',print_r($var, 1);die;

root@server# make love && war
kaww
Не, тут уже подумать надо ;) , по этому давай свои варианты, как пытался, но не получилось. А там уже и придем к решению.
Так понимаю, что
<tr>
<td>
1231</td><td>dsaa</td><td></td><td></td>
</tr>

нужно подставить вместо
<tr style="height:25px">
<td>
Бла бла</td>
</tr>

из первого поста.
и зачем вообще выбирать вместе с разметкой? что дальше с ней делаете? может имеет смысл вытаскивать только содержимое td?
kaww
protectedfor, не совсем на регулярках:
$str = <<<HTML
<table>
<tr><td></td></tr>
</table>
<table>
<tr style="height:25px">
<td>1231</td><td>dsaa</td><td></td><td></td>
</tr>
<tr style="height:25px">
<td>1231</td><td>ddsaa</td><td></td><td></td>
</tr>
<tr style="height:25px">
<td>1231</td><td>dsaa</td><td></td><td></td>
</tr>
</table><table></table>

HTML;
$m = array();
preg_match_all("/(<tr[^>]+?height:25px.*?<\/tr>)/", str_replace("\n", "", $str), $m);
$m = array_map(function($v) {
return new SimpleXMLElement($v);
}, $m[1]);

echo $m[0]->td[0], "\n";
echo $m[0]->td[1], "\n";
echo $m[1]->td[0], "\n";
echo $m[1]->td[1], "\n";
Быстрый ответ:

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