|
|
|
| Подскажите как разбить строку html на элементы массива с php функциями
только без использования DOM
Понимаю что это связано с регулярными выражениями но я вних не очень разбираюсь
// как вот такую строку разбить на два элемента
// если есть возможность примерчик покажите
<div class="divtext" > text
<div class="..." > text2 </div>
</div>
|
| |
|
|
|
|
|
|
|
для: php_fx
(04.06.2007 в 03:12)
| | Что Вы имеете ввиду? не очень понятно...
<pre>
<?
$arr = preg_split("#</?\w+[^>]*>#", $text);
print_r($arr);
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(04.06.2007 в 07:31)
| | Мне надо чтоб строка html была разбита на элементы html
в этом случае на <div>
// к примеру взять строку
$strhtml = "<div class='divtext\' ...> text <div class='...'> text2 <cite> цитата </cite> </div> </div>";
arr = ...
//и разбить ее вот так
arr[0] = ""<div class='divtext' ...> text </div> ";
arr[1] = "<div class='...' ... > text </div> ";
arr[2] = " <cite> цитата </cite> ";
|
| |
|
|
|
|
|
|
|
для: php_fx
(05.06.2007 в 04:45)
| | имхо тут надо работать с ДОМ | |
|
|
|
|
|
|
|
для: php_fx
(05.06.2007 в 04:45)
| | не совсем понятно из примера что в итоге надо..
можно вытащить все теги и их содержание, получятся вот такие массивы
<?php
$strhtml = '<div class="divtext1"> text <div class="divtext2"> text2 <cite> цитата </cite> </div> </div>';
preg_match_all('|<[^>]+>|',$strhtml,$tag);
preg_match_all('|>([^<]+)<|',$strhtml,$content);
print_r($tag[0]);
print_r($content[1]);
?>
|
может вы сможете слепить из низ то, что хотите, раз уж так DOM не любите. | |
|
|
|
|
|
|
|
для: php_fx
(04.06.2007 в 03:12)
| | неправильно понимаете.
Оно не связано с регулярными выражениями.
Регулярные выражения вообще не способны разбирать данные рекурсивной природы неограниченной вложенности.
Можно пробовать разобрать средствами разбора XML. | |
|
|
|