Простая регулярка

12
J
На сайте с 08.06.2006
Offline
844
650
<category id="7" parentId="2">Брюки </category><category id="8" parentId="7">Комбинезоны</category><category id="9" parentId="7">Широкие, Клеш</category><category id="10" parentId="7">Узкие</category><category id="11" parentId="7">Леггинсы</category><category id="12" parentId="7">Повседневные</category><category id="13" parentId="7">Бриджи, Капри</category><category id="14" parentId="7">Классические</category><category id="55" parentId="2">Пляжная одежда</category><category id="56" parentId="55">Купальники</category><category id="57" parentId="55">Туники</category><category id="58" parentId="55">Пляжные аксессуары</category><category id="59" parentId="55">Монокини</category><category id="60" parentId="55">Танкини</category><category id="61" parentId="55">Бикини</category><category id="62" parentId="2">Верхняя одежда</category><category id="63" parentId="62">Дубленки</category><category id="64" parentId="62">Шубы</category><category id="65" parentId="62">Тренчкоты</category><category id="66" parentId="62">Куртки</category><category id="67" parentId="62">Пуховики</category><category id="68" parentId="62">Пальто</category><category id="69" parentId="2">Одежда для дома </category

print $count = preg_match_all("/<category id=\"(.*)\" parentId=\"(.*)\">(.*)<\/category>/isU",$contents,$result);

//print_r($result);

for ($i=0;$i<$count;$i++)
{
print $result[1][$i]." ".$result[2][$i]." ".$result[3][$i]."<br>";
}

В ответ пустота. Что я не так делаю?

Mad_Man
На сайте с 10.11.2008
Offline
162
#1

Есть замечательная идея прекратить парсить XML регулярками.

D
На сайте с 14.01.2007
Offline
153
#2
joost:
for ($i=0;$i<$count;$i++)

это кто? 10раз

siv1987
На сайте с 02.04.2009
Offline
427
#3
Dinozavr:
это кто? 10раз

print $count = preg_match_all

joost, проблема не в регулярке.

D
На сайте с 14.01.2007
Offline
153
#4
siv1987:
print $count = preg_match_all

мда... совсем ослеп

J
На сайте с 08.06.2006
Offline
844
#5
siv1987:
проблема не в регулярке

в чем? .........

siv1987
На сайте с 02.04.2009
Offline
427
#6

В чем - это вы должны выяснить у себя. Начните с дебага $contents и далее.

emariaru
На сайте с 26.10.2010
Offline
73
#7

так попробуйте

preg_match_all("/<category id=\"(.*)\" parentId=\"(.*)\">(.*)<\/category>/isU",$contents,$result);
$count=count($result);

for ($i=0;$i<$count;$i++)
{
print $result[1][$i]." ".$result[2][$i]." ".$result[3][$i]."<br>";
}
J
На сайте с 08.06.2006
Offline
844
#8
emariaru:
так попробуйте

помогло

только $count=count($result[0]);

---------- Добавлено 26.11.2014 в 17:24 ----------

Mad_Man:
Есть замечательная идея прекратить парсить XML регулярками.

не могу отквыкнуть

siv1987
На сайте с 02.04.2009
Offline
427
#9
joost:
помогло

Очень странно что помогло.

AlexVenga
На сайте с 10.04.2007
Offline
190
#10

А попробуйте всю вот вашу текстовую часть которую вы парсите занести в

$string

а потом посмотрите на результат кода:


echo '<pre>';
print_r(simplexml_load_string($string));
echo '</pre>';

Многое переосмыслите)))

Антикризисное предложение: [Бурж, AdSense] [NEW] Сайты - каталоги компаний с гарантией трафа [Дорого] (/ru/forum/1006462)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий