Извлечение узла из XML-подобных данных без дополнительных библиотек PHP - PullRequest
1 голос
/ 09 июля 2009

Мне возвращается следующее:

<links>
    <image_link>http://img357.imageshack.us/img357/9606/48444016.jpg</image_link>
    <thumb_link>http://img357.imageshack.us/img357/9606/48444016.th.jpg</thumb_link>
    <ad_link>http://img357.imageshack.us/my.php?image=48444016.jpg</ad_link>
    <thumb_exists>yes</thumb_exists>
    <total_raters>0</total_raters>
    <ave_rating>0.0</ave_rating>
    <image_location>img357/9606/48444016.jpg</image_location>
    <thumb_location>img357/9606/48444016.th.jpg</thumb_location>
    <server>img357</server>
    <image_name>48444016.jpg</image_name>
    <done_page>http://img357.imageshack.us/content.php?page=done&amp;l=img357/9606/48444016.jpg</done_page>
    <resolution>800x600</resolution>
    <filesize>38477</filesize>
    <image_class>r</image_class>
</links>

Я хочу извлечь image_link в PHP как можно проще и проще. Как я могу это сделать?

Предположим, я не могу использовать какие-либо дополнительные библиотеки / плагины для PHP. :)

Спасибо всем

Ответы [ 3 ]

4 голосов
/ 09 июля 2009

При ответе Джоша проблема не заключалась в том, чтобы избежать символа "/". Таким образом, код, представленный Джошем, стал бы:

$text = 'string_input';
preg_match('/<image_link>([^<]+)<\/image_link>/gi', $text, $regs);
$result = $regs[0];

Принимая ответ Усобана, пример будет:

<?php

// Load the file into $content

$xml = new SimpleXMLElement($content) or die('Error creating a SimpleXML instance');

$imagelink = (string) $xml->image_link; // This is the image link

?>

Я рекомендую использовать SimpleXML, потому что он очень прост и, как сказал usoban, он встроен, это означает, что ему не нужны внешние библиотеки.

3 голосов
/ 09 июля 2009

Вы можете использовать SimpleXML, так как он встроен в PHP.

1 голос
/ 09 июля 2009

используйте регулярные выражения

$text = 'string_input';
preg_match('/<image_link>([^<]+)</image_link>/gi', $text, $regs);
$result = $regs[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...