preg_match_all

Dreamer76

Through thorns
preg_match_all

Скажите пожалуйста, есть где-то в интернете НОРМАЛЬНОЕ описание preg_match_all? С нормальным количествоми примеров, с хорошим и доступным объяснением. Мозги уже плавятся ((
 

Dreamer76

Through thorns
Мозг начинает дымиться примерно тут:
("|<[^>]+>(.*)</[^>]+>|U", ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/
Где-то расписан этот кошмар?
 

donflash

Вареник клуба
Тогда твой вопрос скорей заключается в знании регулярных выражений, нежели чем в preg_match_all... Поюзай google, сейчас полным-полно учебников по регуляркам... Если хочешь скинь мыло в приват, я тебе оч. хороший учебник скину...

-~{}~ 24.08.06 17:10:

А в чём собственно задача необходимого рег выражения? Я вижу тут вырезкой из тегов попахивает...
 

Dreamer76

Through thorns
есть огромная строка, в которой встречается:

mo('ggggg',','ddddd','fffffffff','','

вот надо вырезать из нее ggggg, ddddd & ffffffff
 

donflash

Вареник клуба
str_replace('ggggg', '', $str);
str_replace('ddddd', '', $str);
............................................
............................................

Не пойдёт? Или там какие-то более сложные вырезки есть?
 

Dreamer76

Through thorns
да там вообще п...ц какой-то. я уже думал о

$feedback - это строка.


$stroka = strstr($feedback, 'mo');
list($user, $head, $text) = explode("\',\'", $stroka);


?>


<br>

<table cellspacing=2 cellpadding=2 border=1>
<tr>

<td rowspan=2 valign=top><? echo substr($user, 5); ?></td>
<td><? echo $head; ?></td>
</tr>
<tr>
<td><? echo $text; ?></td>
</tr>
</table>

все делает. но проблема в том, что таких строк много подряд. надо циклом строить скорее всего.
 

donflash

Вареник клуба
Какая-то лажа... Блин, ты скинь хотя бы пару строчек этой страшной строки...
 

Dreamer76

Through thorns
mo('Marko','&#207;&#238;&#228;&#241;&#234;&#224;&#230;&#232;&#242;&#229; &#234;&#224;&#234; &#253;&#242;&#238; &#237;&#224;&#231;&#251;&#226;&#224;&#229;&#242;&#241;&#255; &#232; &#227;&#228;&#229; &#236;&#238;&#230;&#237;&#238; &#253;&#242;&#238; &#234;&#243;&#239;&#232;&#242;&#252; &#226; &#204;&#238;&#241;&#234;&#226;&#229;','&#207;&#238;&#241;&#236;&#238;&#242;&#240;&#232;&#242;&#229; &#239;&#235;&#232;&#231; 3 &#244;&#238;&#242;&#238;&#240;&#224;&#244;&#232;&#232;. &#205;&#224;&#248;&#229;&#235; &#232;&#231;&#237;&#224;&#247;&#224;&#235;&#252;&#237;&#238; &#237;&#224; &#231;&#224;&#240;&#243;&#225;&#229;&#230;&#237;&#238;&#236; &#241;&#224;&#233;&#242;&#229; (&#241;&#248;&#224;). &#221;&#242;&#238; &#237;&#229;&#247;&#242;&#238; &#226;&#240;&#238;&#228;&#229; &#235;&#232;&#237;&#231; (&#237;&#238; &#237;&#229; &#235;&#232;&#237;&#231;) &#228;&#235;&#255; &#241;&#226;&#229;&#242;&#238;&#228;&#232;&#238;&#228;&#238;&#226;... &#205;&#229;&#247;&#242;&#238; &#226;&#240;&#238;&#228;&#229; &#239;&#235;&#224;&#241;&#242;&#232;&#234;&#238;&#226;&#238;&#227;&#238; &#238;&#225;&#240;&#224;&#236;&#235;&#229;&#237;&#232;&#255;, &#234;&#238;&#242;&#238;&#240;&#238;&#229; &#226;&#251;&#239;&#238;&#235;&#237;&#255;&#229;&#242; &#244;&#243;&#237;&#234;&#246;&#232;&#254; &#238;&#242;&#240;&#224;&#230;&#224;&#242;&#229;&#235;&#255; &#241;&#226;&#229;&#242;&#224;.... &#223; &#237;&#229;&#231; &#237;&#224;&#254; &#234;&#224;&#234; &#238;&#225;&#250;&#255;&#241;&#237;&#232;&#242;&#252;... &#244;&#238;&#242;&#238;&#227;&#240;&#224;&#244;&#232;&#232; &#235;&#243;&#247;&#248;&#229; &#226;&#241;&#229;&#227;&#238; &#240;&#224;&#241;&#241;&#234;&#224;&#230;&#243;&#242;. &#207;&#240;&#232;&#247;&#229;&#236; &#242;&#224;&#234;&#232;&#229; &#239;&#235;&#224;&#241;&#242;&#232;&#234;&#238;&#226;&#251;&#229; &#248;&#242;&#243;&#234;&#232; &#225;&#251;&#226;&#224;&#254;&#242; &#236;&#237;&#238;&#227;&#232;&#245; &#226;&#232;&#228;&#238;&#226; (&#244;&#238;&#240;&#236;&#251;). &#205;&#224; &#244;&#238;&#242;&#238; &#232;&#245; &#226;&#241;&#229;&#227;&#238; 3 &#240;&#224;&#231;&#237;&#251;&#245; &#226;&#232;&#228;&#224;, &#224; &#255; &#226;&#232;&#228;&#229;&#235; &#241; &#228;&#229;&#241;&#255;&#242;&#238;&#234;... <BR> <BR> <a target=_blank href="http://www.mazda-demio.ru/sys_images/150.jpg"><u>http://www.mazda-demio.ru/sys_images/150.jpg</u></a> <BR> <a target=_blank href="http://www.mazda-demio.ru/sys_images/151.jpg"><u>http://www.mazda-demio.ru/sys_images/151.jpg</u></a> <BR> <a target=_blank href="http://www.mazda-demio.ru/sys_images/152.jpg"><u>http://www.mazda-demio.ru/sys_images/152.jpg</u></a> <BR> <BR> &#194;&#238;&#239;&#240;&#238;&#241;&#224; &#241;&#238;&#225;&#241;&#242;&#226;&#229;&#237;&#237;&#238; &#228;&#226;&#224;. <BR> <BR> 1) &#202;&#224;&#234; &#253;&#242;&#238; &#237;&#224;&#231;&#251;&#226;&#224;&#229;&#242;&#241;&#255;? <BR> 2) &#204;&#238;&#230;&#237;&#238; &#235;&#232; &#253;&#242;&#238; &#234;&#243;&#239;&#232;&#242;&#252; &#226; &#204;&#238;&#241;&#234;&#226;&#229; &#232;&#235;&#232; &#247;&#229;&#240;&#229;&#231; &#234;&#238;&#227;&#238; &#242;&#238; &#231;&#224;&#234;&#224;&#231;&#224;&#242;&#252; &#227;&#228;&#229; &#235;&#232;&#225;&#238;? (&#237;&#243;&#230;&#237;&#238; &#232;&#245; &#236;&#237;&#238;&#227;&#238;, &#239;&#238;&#234;&#224; &#238;&#234;&#238;&#235;&#238; &#242;&#251;&#241;&#255;&#247;&#232; &#228;&#235;&#255; &#238;&#228;&#237;&#238;&#227;&#238; &#239;&#240;&#238;&#229;&#234;&#242;&#224;) <BR> <BR> &#209; &#243;&#226;&#224;&#230;&#229;&#237;&#232;&#229;&#236;. ','','1','1155752698','1','marko','','0','','4','','','1155752293','','','','0','', '');
 

donflash

Вареник клуба
Писец... А как ты выбираешь, что тебе надо вырезать. То есть, по каким условиям делаешь выборку?
 

Dreamer76

Through thorns
$stroka = strstr($feedback, 'mo'); // идем до строки, которая начинается с mo.

list($user, $head, $text) = explode("\',\'", $stroka); // разбиваем все по первым входящим ','

получаем 3 куска.

каждому даем имя user, head, text

кладем в table.

Первый кусок mo('Marko

с помощью <? echo substr($user, 5); ?> превращаем его в Marko.

и все.

все работает. все красиво. Но фигня в том, что это один кусок. А таких кусков - немерянно. Идут один за другим. ((

Вот как лучше организовать цикл?
 

donflash

Вареник клуба
PHP:
$vars = explode('mo', $feedback);

foreach ($vars as $block)
{
  list($user, $head, $text) = explode("\',\'", $block); 
}
 

donflash

Вареник клуба
Так проблема решена?

-~{}~ 24.08.06 17:58:

Да, кстати, зачем ты когда explode с запятой делаешь пишешь:
PHP:
explode("\',\'",..)
вместо
PHP:
explode(',', ...)
?
 

Dreamer76

Through thorns
Да. Проблема решена. Насчет запятой...

',' у меня выступает как разделитель в тексте
 
Сверху