Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SimpleXML IF条件_Php_Xml_Simplexml - Fatal编程技术网

Php SimpleXML IF条件

Php SimpleXML IF条件,php,xml,simplexml,Php,Xml,Simplexml,我有一个XML文档,它将返回URL或错误代码。如果它返回错误代码,我想将页面重定向到错误图像。我可以让SimpleXML返回URL,但我不确定如果返回错误,如何编写条件。如果有人有任何建议,那就太好了!这就是我现在拥有的: <?php error_reporting(0); $url = 'http://radiocast.co/art/api1/key=KeyHere&album=' . htmlspecialchars($_GET["album"]) . '&arti

我有一个XML文档,它将返回URL或错误代码。如果它返回错误代码,我想将页面重定向到错误图像。我可以让SimpleXML返回URL,但我不确定如果返回错误,如何编写条件。如果有人有任何建议,那就太好了!这就是我现在拥有的:

<?php
error_reporting(0);

$url = 'http://radiocast.co/art/api1/key=KeyHere&album=' . htmlspecialchars($_GET["album"]) . '&artist=' . htmlspecialchars($_GET["artist"]) . '';
$xml = simplexml_load_file($url);

$img = $xml->xpath('//image[@size="large"]');

$large = (string)$img[0];

header("Location:".urldecode($large));

?>

如果找不到XML文档,则返回以下内容:

<?xml version="1.0" encoding="utf-8"?>
<lookup status="failed">
<error code="3">Art not found</error></lookup>

找不到艺术品

如何检查XML中的错误节点,如果找到它,然后处理各种错误?如果你没有找到它,你可以继续你的正常逻辑

if (isset($xml->error)) {
    switch ($xml->error['code']) {
        case '3':
            // not found stuff here
            break;

        // other error codes here
    }
} else {
    // success logic here
    $img = $xml->xpath('//image[@size="large"]');
    $large = (string) $img[0];
    header("Location: " . urldecode($large));
}

如何检查XML中的错误节点,如果找到了,则处理各种错误?如果你没有找到它,你可以继续你的正常逻辑

if (isset($xml->error)) {
    switch ($xml->error['code']) {
        case '3':
            // not found stuff here
            break;

        // other error codes here
    }
} else {
    // success logic here
    $img = $xml->xpath('//image[@size="large"]');
    $large = (string) $img[0];
    header("Location: " . urldecode($large));
}

提示1:在根元素的名称之后,将变量重命名为
$lookup
。提高可读性。提示2:http_build_url或sprintf更适合构建url提示1:在根元素的名称之后将变量重命名为
$lookup
。提高可读性。提示2:http_build_url或sprintf更适合构建url。我收到了几个警告和一个致命错误。我仍然不确定该怎么做错误是你的朋友:-)找出它们与哪一行重合,如果你不知道错误是指什么,用谷歌搜索错误消息。如果你自己无法解决这些问题,并且在谷歌上找不到任何东西,请将你的问题发回这里!我收到几个警告和一个致命错误。我仍然不确定该怎么做错误是你的朋友:-)找出它们与哪一行重合,如果你不知道错误是指什么,用谷歌搜索错误消息。如果你自己无法解决这些问题,并且在谷歌上找不到任何东西,请将你的问题发回这里!