Помогите с str_replace

vxc

Новичок
Помогите с str_replace

Есть xml файл в котором несколько секций вида:

<item>
<one>bla-bla-bla</one>
<two>tro-lo-lo</two>
<title>title</title>
<category>1</category>
<category>2</category>
<category>3</category>
<some>dfssdfdsf</some>
<time>time</time>
</item>

Нужно превратить
<category>1</category>
<category>2</category>
<category>3</category>

в <category>1,2,3</category>


Проблема в том, что содержание динамическое, и я точно не знаю, какие строки будут до и после <category>

Пытался делать
$db = file_get_contents($file);
$db = str_replace("</category>
<category>",",", $db);
не работает:(
А если я сразу ручками занесу информацию в $db(а не через file_get_contents), то все хорошо.

а если db=preg_replace("/<\/category(.*?)category>/is", ",", $db); то будет вырезаться и полезная информация.

Как быть? По возможности хотелось бы обойтись replace'ами и без xml2array.
 

vxc

Новичок
Да вот в том, то и дело, что хотелось бы без этого обойтись.
Неужели нет более простого решения?
Может быть есть возможность указать максимальное расстояние между двумя вхождениями preg_replace("/<\/category(.*?)category>/is", ",", $db); Чтобы оно применялось только в том случае если между <category> и </category> не более n символов?
 

vxc

Новичок
непониманием того, зачем городить DOM, если известно что в файле есть запись:
</category>*перенос строки*
*два пробела*<category>

и почему ее нельзя вырезать более простым способом:)

Да и как выяснилось хостининг не поддерживает domxml:(((

-~{}~ 16.03.10 00:01:

дом...дом....а все оказалось банально
$db = str_replace("</category>\n <category>", ", ", $db);
 
Сверху