2013-12-22 3 views
-1

Я использую этот локон код:Преобразование строкового типа из завитка в массив

$key='the_key'; 
$url='http://api-product.skimlinks.com/categories?key='.$key.'&format=xml'; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result=curl_exec($ch); 
var_dump($result); 

Который дает мне следующую строку

string(575317) "<?xml version='1.0' encoding='UTF-8'?> 
<skimlinksProductAPI><status>200 
</status><message>OK 
</message><version>3 
</version><categories><category><id>4446 
</id><name>Vehicles &amp; Parts &gt; Automotive Monitoring &gt; Radar Detectors &amp; Jammers 
</name> 
</category><category><id>4458 
</id><name>Vehicles &amp; Parts &gt; Automotive Parts &gt; Automotive Batteries &gt; Fuel Cells 
</name> 
</category><category><id>4412 
</id><name>Vehicles &amp; Parts &gt; Automotive Exterior &gt; License Plates 
</name> 
</category><category><id>3734 
</id><name>Sporting Goods &gt; Outdoor Recreation &gt; Camping, Backpacking &amp; Hiking &gt; Camp Furniture 
</name> 
</category><category><id>4447 
</id><name>Vehicles &amp; Parts &gt; Automotive Monitoring &gt; Speedometers 
</name> 
</category><category><id>4026 
</id><name>Sporting Goods &gt; Team Sports &gt; Beach Volleyball &gt; Beach Volleyball Nets 
</name> 
</category><category><id>3724 
</id><name>Sporting Goods &gt; Outdoor Recreation &gt; Archery &gt; Archery Armguards 
</name> 
</category><category><id>4024 
</id><name>Sporting Goods &gt; Team Sports &gt; Beach Volleyball 
</name> 
</category><category><id>4025 
</id><name>Sporting Goods &gt; Team Sports &gt; Beach Volleyball &gt; Beach Volleyball Balls 
</name> 
</category><category><id>4022 
</id><name>Sporting Goods &gt; Team Sports &gt; Basketball &gt; Basketball Hoops 
</name> 
</category><category><id>4023 
</id><name>Sporting Goods &gt; Team Sports &gt; Basketball &gt; Basketballs 
</name> 
</category><category><id>4020 
</id><name>Sporting Goods &gt; Team Sports &gt; Basketball &gt; Basketball Hoop Parts &amp; Accessories &gt; Basketball Poles 
</name> 
</category><category><id>3725 
</id><name>Sporting Goods &gt; Outdoor Recreation &gt; Archery &gt; Archery Targets 
</name> 
</category><category><id>3798 
</id><name>Sporting Goods &gt; Outdoor Recreation &gt; Cycling &gt; Bicycle Parts &gt; Bicycle Forks 
</name> 
</category><category><id>4028 
</id><name>Sporting Goods &gt; Team Sports &gt; Cheerleading &gt; Cheerleading Megaphones 
</name> 
</category><category><id>4029 
</id><name>Sporting Goods &gt; Team Sports &gt; Cheerleading &gt; Pom-Poms 
</name> 
</category><category><id>4607 
</id><name>Vehicles &amp; Parts &gt; Watercraft Parts &amp; Accessories &gt; Watercraft Care &gt; Watercraft Polishes 
</name> 
</category><category><id>4417 
</id><name>Vehicles &amp; Parts &gt; Automotive Exterior &gt; Winch Parts 
</name> 
</category><category><id>344 
</id><name>Arts &amp; Entertainment &gt; Artwork &gt; Prints 
</name> 
</category><category><id>345 
</id><name>Arts &amp; Entertainment &gt; Artwork &gt; Weatherprints &amp; Outdoor Art 
</name> 
</category><category><id>346 
</id><name>Arts &amp; Entertainment &gt; Collectibles 
</name> 
</category><category><id>347 
</id><name>Arts &amp; Entertainment &gt; Collectibles &gt; Autographs 
</name> 
</category><category><id>340 
</id><name>Arts &amp; Entertainment &gt; Artwork &gt; Paintings 
</name> 
</category><category><id>341 
</id><name>Arts &amp; Entertainment &gt; Artwork &gt; Photographs 
</name> 
</category><category><id>342 
</id><name>Arts &amp; Entertainment &gt; Artwork &gt; Photographs &gt; Stock Photographs 
</name> 
</category><category><id>343 
</id><name>Arts &amp; Entertainment &gt; Artwork &gt; Posters &amp; Reproductions 
</name> 
</category><category><id>2918 
</id><name>Home &amp; Garden &gt; Lawn &amp; Garden &gt; Outdoor Living &gt; Patio Umbrellas &amp; Sunshades 
</name> 
</category><category><id>3996 
</id><name>Sporting Goods &gt; Racquet Sports &gt; Tennis &gt; Tennis Ball Savers 
</name> 
</category><category><id>3995 
</id><name>Sporting Goods &gt; Racquet Sports &gt; Tennis &gt; Tennis Ball Launchers 
</name> 
</category> 

просто куча категорий, просто получается, что строка было бы совершенно нечитаемым, есть ли способ получить этот ответ XML как массив с завитком? Прямой массив из него или требуется преобразование строки в массив ручным способом, если да, то какая лучшая процедура.

+1

Я бы не опубликовал ваши токены доступа здесь. Любой может это увидеть и использовать. Единственный способ исправить это - удалить сообщение и воссоздать его. – Machavity

+0

Да, я фактически изменил значения ключа на несуществующий для меры безопасности – lbennet

ответ

0

Вы должны использовать SimpleXML расширение и simplexml_load_string функции для создания объекта XML из вашего строка. После этого вы можете просто использовать его как любой другой объект и преобразовать его в массив (если хотите).

0

CURL ничего не может сделать с XML. Некоторые API предоставят вам seralised массив и ответы JSON. Проверьте их, поскольку с ними гораздо легче справиться. В противном случае вам нужно использовать PHP DOM для чтения XML и сделать его в массив:

http://www.php.net/book.dom

What is the best php DOM 2 Array function?

Смежные вопросы