解析错误:语法错误,在解析xml站点地图中的语句时出现意外的T_IF

时间:2016-06-20 08:56:11

标签: php xml sitemap

我正在尝试创建xml站点地图我的数据库中有一个列album_image。在开始的一天,我没有上传专辑图片和列商店'0'作为价值多年前我开始上传专辑图像。现在我想为它创建站点地图。如果album_image == 0显示静态图像,则显示相册iamge。如何在$ xml。=

中使用if statment
$xml .= '<image:image>';
        $xml .= '<image:loc>'.SITE_URL. if($row->album_image == '0'){'images/video_icon.png'}else{'media/'.$row->cat_id.'/images/'.$row->album_image.'}</image:loc>';
        $xml .= '<image:caption>'.$row->album_name.'</image:caption>';
        $xml .= '</image:image>';

我收到此错误“解析错误:语法错误,第15行的E:\ wamp \ www \ site \ sitemap-album.php中的意外T_IF”

4 个答案:

答案 0 :(得分:1)

您需要将if条件分开:

$xml .= '<image:image>';
$xml .= '<image:loc>'.SITE_URL;

if($row->album_image == '0') {
   $xml .= 'images/video_icon.png';
 } else {
   $xml .= 'media/'.$row->cat_id.'/images/'.$row->album_image;
 }

 $xml .= '</image:loc>';
 $xml .= '<image:caption>'.$row->album_name.'</image:caption>';
 $xml .= '</image:image>';

答案 1 :(得分:0)

你也可以使用$ xml。=&#39;&#39;;

 $xml .= '<image:loc>'.SITE_URL. ($row->album_image == '0')?'images/video_icon.png':'media/'.$row->cat_id.'/images/'.$row->album_image.'</image:loc>';
    $xml .= '<image:caption>'.$row->album_name.'</image:caption>';
    $xml .= '</image:image>';

答案 2 :(得分:0)

完整的代码如下。现在我正在考虑&#34;解析错误:语法错误,意外&#39; =&#39;在&#34;

$sql = "SELECT * from albums  LIMIT 0, 1";
$query = mysql_query($sql);
if(mysql_num_rows($query) > 0){
    while($row = mysql_fetch_object($query)){
        $xml .= '<url>';
        $xml .= '<loc>'.SITE_URL.$row->album_url.'-album-1</loc>';
        $xml .= '</url>';
        $xml .= '<image:image>';
        $xml .= '<image:loc>'.SITE_URL;

        if($row->album_image == '0') {
           $xml . = 'images/video_icon.png';
         } else {
           $xml .= 'media/'.$row->cat_id.'/images/'.$row->album_image.';
         }

         $xml .= '</image:loc>';
         $xml .= '<image:caption>'.$row->album_name.'</image:caption>';
         $xml .= '</image:image>';
    }
}
$xml .= '</urlset>';
echo $xml;

答案 3 :(得分:0)

每个PHP语句必须以半冒号(;)结束。

它有一个例外:文件中的最后一个语句。

echo语句在某些代码需要之前的语句关闭之后。

连接可以起作用,但是,对于echo,关闭前一个语句是唯一的选择。

使用三元运算符并将结果存储在变量中。

使用该变量使代码可读。

完整代码:

$videoImage = ($row->album_image == '0') ? 'images/video_icon.png' : 'media/'.$row->cat_id.'/images/'.$row->album_image;
$xml .= '<image:image>';
$xml .= '<image:loc>'.SITE_URL . $videoImage . '</image:loc>';
$xml .= '<image:caption>'.$row->album_name.'</image:caption>';
$xml .= '</image:image>';