Синтаксический анализ данных объекта SimpleXML

#php #simplexml

#php #simplexml

Вопрос:

Как получить «file_url» из этих данных?

Ответ может содержать несколько объектов, и как его проанализировать?

Код, который я использую:

 <?php
$r34data = simplexml_load_file('https://rule34.xxx/index.php?page=dapiamp;s=postamp;q=indexamp;tags=green_hairamp;limit=2');
print_r($r34data);
 

Ответ:

 SimpleXMLElement Object ( [@attributes] => Array ( [count] => 69175 [offset] => 0 ) [post] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [height] => 2039 [score] => 1 [file_url] => https://wimg.rule34.xxx/images/3820/01e0a587f6e303c34669a4f79c994100.png [parent_id] => [sample_url] => https://rule34.xxx/samples/3820/sample_01e0a587f6e303c34669a4f79c994100.jpg [sample_width] => 850 [sample_height] => 667 [preview_url] => https://rule34.xxx/thumbnails/3820/thumbnail_01e0a587f6e303c34669a4f79c994100.jpg [rating] => e [tags] => 1boy 2girls annette_(fire_emblem) annette_fantine_dominic ass back back_view bare_back big_ass big_breasts blue_eyes blue_lingerie breasts_outside byleth_(fire_emblem) byleth_(fire_emblem)_(male) byleth_(male) ffm_threesome fingering fingering_partner fire_emblem fire_emblem:_three_houses french_kiss green_hair kissing light_blue_lingerie lingerie long_hair lysithea_(fire_emblem) lysithea_von_ordelia medium_breasts medium_hair nintendo nipples orange_hair pink_eyes purple_lingerie pussy pussy_juice pussy_juice_trail quan_ming sex threesome vaginal_penetration white_hair [id] => 4324333 [width] => 2600 [change] => 1608630074 [md5] => 01e0a587f6e303c34669a4f79c994100 [creator_id] => 503169 [has_children] => false [created_at] => Tue Dec 22 09:21:59  0000 2020 [status] => active [source] => https://www.pixiv.net/en/artworks/86455582 [has_notes] => false [has_comments] => false [preview_width] => 150 [preview_height] => 117 ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [height] => 1600 [score] => 10 [file_url] => https://wimg.rule34.xxx/images/3820/4a88c87d1cb18928bcee85207bf1c61b.jpeg [parent_id] => [sample_url] => https://rule34.xxx/samples/3820/sample_4a88c87d1cb18928bcee85207bf1c61b.jpg [sample_width] => 850 [sample_height] => 618 [preview_url] => https://rule34.xxx/thumbnails/3820/thumbnail_4a88c87d1cb18928bcee85207bf1c61b.jpg [rating] => e [tags] => 1boy 1boy1girl 1girls all_fours anal anal_sex barefoot bent_over big_breasts christmas clothed_male_nude_female clothing cum cum_in_ass cum_inside cum_leaking doggy_style ejaculation ejaculation_while_penetrated faceless_male feet female female_focus forehead_protector green_hair hair_bun headband huge_breasts kneeling long_hair looking_at_viewer looking_back male multicolored_hair naked naruto naruto_(series) naruto_shippuden nude open_mouth orange_eyes orange_hair pakura penetration pussy santa_costume smile soles standing tied_hair toes two_tone_hair vagina [id] => 4324142 [width] => 2202 [change] => 1608622103 [md5] => 4a88c87d1cb18928bcee85207bf1c61b [creator_id] => 631992 [has_children] => false [created_at] => Tue Dec 22 07:28:01  0000 2020 [status] => active [source] => [has_notes] => false [has_comments] => false [preview_width] => 150 [preview_height] => 108 ) ) ) )
 

Пожалуйста, помогите!

(не спрашивайте, почему я анализирую rule34)

Комментарии:

1. PHP имеет действительно неплохое онлайн-руководство. Для SimpleXML есть целая страница примеров использования .

Ответ №1:

Привет
Вы можете преобразовать его в массив, и работать с ним легко

 libxml_use_internal_errors(TRUE);

$objXmlDocument = simplexml_load_file("https://rule34.xxx/index.php?page=dapiamp;s=postamp;q=indexamp;tags=green_hairamp;limit=2");

if ($objXmlDocument === FALSE) {
    echo "There were errors parsing the XML file.n";
    foreach(libxml_get_errors() as $error) {
        echo $error->message;
    }
    exit;
}

$objJsonDocument = json_encode($objXmlDocument);
$arrOutput = json_decode($objJsonDocument, TRUE);

echo "<pre>";
print_r($arrOutput);
 

Комментарии:

1. Мой друг, если мой ответ помог вам с вашим вопросом, я был бы признателен, если бы вы выбрали его как лучший ответ по своему усмотрению.

2. да, ваш ответ очень помог, я выбрал ваш ответ как лучший, еще раз спасибо (извините, 4 мой английский, я русский)

3. Пожалуйста, не делайте этого! Объект SimpleXML уже разработан для предоставления вам всей информации, и все, что вы делаете, преобразуя его в массив, — это выбрасываете информацию и усложняете себе жизнь.