【发布时间】:2017-04-21 20:43:46
【问题描述】:
首先,我对 PHP 一无所知,所以请善待!我正在为 SPCA 工作(我是一名兽医和兼职极客)。 PHP 从用于管理庇护所和存储图像、信息的门户访问 xml 文件。该文件将该 xml 数据写入 JSON,然后我在车把模板等中使用 JSON 数据。我在从 xml 文件中获取一些数据以输出到 JSON 时遇到问题。
xml文件是这样的:
</DataFeedAnimal>
<AdditionalPhotoUrls>
<string>doc_73737.jpg</string>
<string>doc_74483.jpg</string>
<string>doc_74484.jpg</string>
</AdditionalPhotoUrls>
<PrimaryPhotoUrl>19427.jpg</PrimaryPhotoUrl>
<Sex>Male</Sex>
<Type>Cat</Type>
<YouTubeVideoUrls>
<string>http://www.youtube.com/watch?v=6EMT2s4n6Xc</string>
</YouTubeVideoUrls>
</DataFeedAnimal>
在朋友编写的 PHP 文件中,代码如下(只是其中的一部分),用于访问 XML 数据并将其写入 JSON:
<?php
$url = "http://eastbayspcapets.shelterbuddy.com/DataFeeds/AnimalsForAdoption.aspx";
if ($_GET["type"] == "found") {
$url = "http://eastbayspcapets.shelterbuddy.com/DataFeeds/foundanimals.aspx";
} else if ($_GET["type"] == "lost") {
$url = "http://eastbayspcapets.shelterbuddy.com/DataFeeds/lostanimals.aspx";
}
$response_xml_data = file_get_contents($url);
$xml = simplexml_load_string($response_xml_data);
$data = array();
foreach($xml->DataFeedAnimal as $animal)
{
$item = array();
$item['sex'] = (string)$animal->Sex;
$item['photo'] = (string)$animal->PrimaryPhotoUrl;
$item['videos'][] = (string)$animal->YouTubeVideoUrls;
$item['photos'][] = (string)$animal->PrimaryPhotoUrl;
foreach($animal->AdditionalPhotoUrls->string as $photo) {
$item['photos'][] = (string)$photo;
}
$item['videos'] = array();
$data[] = $item;
}
echo file_put_contents('../adopt.json', json_encode($data));
echo json_encode($data);
?>
JSON 输出运行良好,但我无法像“照片”那样将“视频”写入 JSON 文件。我只是得到'/n'!
由于帮助解决此问题的朋友已不在身边,我被困住了。我已经尝试了与照片的 foreach 语句类似的代码,但一无所获。任何帮助将不胜感激,宠物也将不胜感激!
【问题讨论】: