正在尝试从API输出解析XML/JSON


Attempting to parse XML/JSON from an API output

好。。。我使用的是PHP 5(要温和,仍在学习PHP)。CURL已启用。试图将API的XML或JSON输出加载到对象,但什么也没发生。当我手动执行有问题的URL时,我得到了我所期望的。

这是我的代码:

class XmlToJson {
    public function Parse ($url) {
        $fileContents = file_get_contents($url);
        $fileContents = str_replace(array("'n", "'r", "'t"), '', $fileContents);
        $fileContents = trim(str_replace('"', "'", $fileContents));
        $simpleXml = simplexml_load_string($fileContents);
        $json = json_encode($simpleXml);
        return $json;
    }
}
$_MySQLServer = "localhost";
$_MySQLServerUserName = "";
$_MySQLServerPassword = "";
$_MySQLDatabaseName = "";
$_SSActiveWear_UserID = "*****";
$_SSActiveWear_APIKey = "*****";
$_SSActiveWear_APIBaseURL = "https://*****/v2";
$_CategoryURL = "/categories/";
$_StylesURL = "/styles/";
$_ProductsURL = "/products/";
$_SpecsURL = "/specs/";
$_SSActiveWear_MediaType = "xml";
//$_conn = mysqli_connect($_MySQLServer, $_MySQLServerUserName, $_MySQLServerPassword, $_MySQLDatabaseName);
//Insert or Update Categories
$_URL = $_SSActiveWear_APIBaseURL . $_CategoryURL;
$_URL = $_URL . "?mediatype=$_SSActiveWear_MediaType&UserName=$_SSActiveWear_UserID&Password=$_SSActiveWear_APIKey";
$OBJ = simplexml_load_string($_URL);
print_r($OBJ);

我做错了什么?

编辑1

添加了以下代码:

$xml = simplexml_load_file($_URL) or die("Error: Cannot create object");
print_r($xml);

然后它就死了。这是否意味着代码有问题?

试试这个:

$OBJ = simplexml_load_string(file_get_contents($_URL));

如果您想知道代码不起作用的原因,您正试图从URL加载XML,但"simplexml_load_string"从字符串加载XML。

我终于想通了。。。更重要的是,我终于在谷歌上找到了一个有帮助的网站。这是fsockopen中http身份验证问题的第一个答案。

下面是有效的代码:

file_get_contents("https://$_SSActiveWear_UserID:$_SSActiveWear_APIKey@$_SSActiveWear_APIBaseURL$_CategoryURL/?mediatype=$_SSActiveWear_MediaType");

中介类型可以是json或xml