|
|
|
|
<?
$post = '
<?xml version="1.0" encoding="windows-1251"?>
<request uid="123456789" protocol="protocoltype" date="Mon, Dec 5, 2007 17:45:05 MSK" mt="false">
<abonent isnn="1121" phone="+79211234567" operator="Megafon" additional="">
<conent-text content-type="datatype">содержимое</content-text>
</request>
';
preg_match_all("#\"([a-zA-Zа-яА-Я0-9,.:+ ]*)\"#i", $post, $regs);
echo "<pre>";
print_r($regs[1]);
?>
|
На выходе получаю
Array
(
[0] => 1.0
[1] => 123456789
[2] => protocoltype
[3] => Mon, Dec 5, 2007 17:45:05 MSK
[4] => false
[5] => 1121
[6] => +79211234567
[7] => Megafon
[8] =>
[9] => datatype
)
|
а хотелось бы
Array
(
['version'] => 1.0
['uid'] => 123456789
['protocol'] => protocoltype
....
['content-type'] => datatype
)
|
- Возможно ли так сделать?
- Можно как нибудь этим же выражением получить "содержимое" в content-text? или лучше сделать это отдельным выражением?
И еще буду благодарна если подскажите как усовершенстовать рег. выражение.
Спасибо! | |
|
|
|
|
автор: .......... (06.08.2009 в 17:00) |
|
|
для: IsIra
(06.08.2009 в 04:22)
| | есть чтото похожее
<pre><?php
$txt = '<?xml version="1.0" encoding="windows-1251"?>
<request uid="123456789" protocol="protocoltype" date="Mon, Dec 5, 2007 17:45:05 MSK" mt="false">
<abonent isnn="1121" phone="+79211234567" operator="Megafon" additional="">
<conent-text content-type="datatype">содержимое</content-text>
</request>
';
$xp = xml_parser_create();
xml_parse_into_struct($xp ,$txt , $values);
print_r($values);
xml_parser_free($xp);
?>
| только массив $values получится в utf-8 кодировке
и не совсем такой структуры.
такой как вы хотите получить наверное можно , но получится заточенный под именно такой xml текст | |
|
|
|
|
|
|
|
для: ..........
(06.08.2009 в 17:00)
| | Это подойдет, спасибо. Главное чтобы имена элементов были. | |
|
|
|