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>';
我正在尝试创建 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>';