我有一个应用程序的XML天气预报。 Feed正在发送.GIF图片的信息,但我希望它能找到.PNG。我尝试过一次STR_REPLACE但是没有用。
$icon = $xml->xpath("/xml_api_reply/weather/forecast_conditions/icon");
$iconData = str_replace('.gif','.png',$icon);
echo '<img src="'.get_bloginfo('stylesheet_directory').'/images'.$iconData[2]->attributes().'" />';
多一点信息:::
XML Feed不提供图像。只是它们的URL的开头。因此,$icon[1]
的XML Feed的输出为ig/images/weather/mostly_sunny.gif
。然后我在开头添加了我们的URL并设置了相同的路径,但我只需要将.gif更改为.png
第一行之后的ECHO $ icon [1]是ig/images/weather/mostly_sunny.gif
这就是全部。
答案 0 :(得分:1)
你这里有很多东西,很难预测会发生什么。
$icon = $xml->xpath("/xml_api_reply/weather/forecast_conditions/icon");
此时,$icon
是一个SimpleXMLObject对象的数组,可能是空的。
$iconData = str_replace('.gif','.png',$icon);
str_replace
可以接受一个数组作为第三个参数,它可以可能它还会强制$icon
中的值进入字符串。这样做的结果取决于XML的结构,如果icon
元素始终是文本,那么这应该没问题。
echo '<img src="'.get_bloginfo('stylesheet_directory').'/images'.$iconData[2]->attributes().'" />'
这有用吗?我原以为,在这一点上,$ iconData将是一个字符串数组,而不是一个SimpleXMLObject对象数组。
如果我是你,我会手动迭代xpath搜索的结果,并将SimpleXMLObject对象显式地转换为字符串,因为我需要它们表现为字符串。
HTH。
答案 1 :(得分:0)
试试这个:
$iconData = str_replace('.gif','.png',$icon[1]);
echo '<img src="'.get_bloginfo('stylesheet_directory').'/images/'.$iconData.'" />'
所以你确定你身边的文件夹是'stylesheet_directory'PLUS / images PLUS / ig / images / weather?
我认为最初的问题是str_replace用于字符串而你传入一个数组?..