|
|
|
| Помогите пожалуйста!
Есть такой текст:
<h3>Группа 1</h3> Какой то текст принадлежащий группе 1
<h3>Группа 2</h3> Какой то текст принадлежащий группе 2
<h3>Группа 3</h3> Какой то текст принадлежащий группе 3
<h3>Группа 4</h3> Какой то текст принадлежащий группе 4
Нужно сделать массив каждый элемент которого соответствовал бы единственной приведённой выше строчке.
Т.е.
[0] - <h3> .... </h3> .....
[1] - <h3> .... </h3> .....
я написал:
[^<\/h3>]*<h3>.*<\/h3>[^<h3>]*
получается:
0: <h3>Группа 1</h3> Какой то текст принадлежащий группе 1
1: <h3>Группа 2</h3> Какой то текст принадлежащий группе 2
2: <h3>Группа 3</h3> Какой то текст принадлежащий группе
3: <h3>Группа 4</h3> Какой то текст принадлежащий группе 4
Надо как то показать что после </h3> идёт текст ( .* ) а потом не должно быть открывающегося тега <h3> что если он есть это уже в новый элемент массива надо пихать, т.е. [^<h3>]* эта конструкция в конце не правильная, она воспринимается как список символов <, h, 3, >, а надо что бы строгая последовательность была, цельная, именно <h3>, а то как я написал он там и <br> выкидывает, короче муть. | |
|
|
|
|
|
|
|
для: vastvision
(16.04.2010 в 15:25)
| |
$str = "<h3>Группа 1</h3> Какой то текст принадлежащий группе 1
<h3>Группа 2</h3> Какой то текст принадлежащий группе 2
<h3>Группа 3</h3> Какой то текст принадлежащий группе 3
<h3>Группа 4</h3> Какой то текст принадлежащий группе 4";
preg_match_all("|<h3>(?:(?!<\/h3>).)*<\/h3>[^<]*|ism",$str,$arr);
print_r($arr);
|
| |
|
|
|
|
|
|
|
для: big-trot
(16.04.2010 в 22:19)
| | Спасибо. Почти то что нужно, проблема в том что после </h3> есть ещё теги и вот эта конструкция мешает: [^<]*, т.е. обрезка идёт до символа < , а надо именно до нового <h3>, потому что после заголовка (ну <h3></h3>) идут ещё дивы и <b>, <em>... | |
|
|
|
|
|
|
|
для: vastvision
(17.04.2010 в 16:14)
| | $val = str_replace('<h3>', '@@@<h3>', $val);
$val = $val . '@@@';
$res = preg_match_all("|(<h3>.*?</h3>.*?)@@@|i", $val, $mass, PREG_PATTERN_ORDER); | |
|
|
|
|
|
|
|
для: vastvision
(17.04.2010 в 16:47)
| | <h3>(?:(?!<\/h3>).)*<\/h3>(?:(?!<h3>).)* | |
|
|
|