Parse error: syntax error, unexpected T_IF while parsing if statement in xml sitemap

Parse error: syntax error, unexpected T_IF while parsing if statement in xml sitemap

我正在尝试创建 xml 站点地图 我的数据库中有一列 album_image。在开始的那一天,我没有上传相册图片,并且在几年前我开始上传相册图片后,列存储“0”作为值。现在我想为它创建站点地图。 if album_image == 0 显示静态图片 else 显示相册 iamge。我如何在 $xml .=

中使用 if 语句
$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”

你需要把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>';

你也可以使用这个 $xml .= '';

 $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>';

完整代码如下。现在我得到 "Parse error: syntax error, unexpected '=' in"

$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;

每个 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>';