0

在寻找一些 Ruby 脚本后,我尝试在脚本的帮助下编写 PHP。我现在的问题是我不确定 json 对象是否正确,因为我现在不知道它的来源。

我的问题是如果我在 PHP 中使用 json 有什么问题吗?如果不是来源的对象是错误的。

<?php

$sn = isset($_GET['sn']) ? $_GET['sn'] : '';

if($sn)
{
    $url = 'https://selfsolve.apple.com/warrantyChecker.do?sn='.$sn . "&country=USA";

    $json = file_get_contents($url);
    $json = substr($json, 5, -1);
    $json_obj = json_decode($json);

    if(isset($json_obj->ERROR_CODE))
    {
        echo $json_obj->ERROR_DESC;
    }
    else
    {
        echo "$json_obj->PROD_DESCR <img src=\"$json_obj->PROD_IMAGE_URL\" alt=\"\"><br>";

        echo"Product Description: $json_obj->PROD_DESCR <br>";
        echo"Purchase date: $json_obj->PURCHASE_DATE <br>";
        echo"Warranty exp date: $json_obj->COVERAGE_DATE <br>";

    }
}
?>

<form action="" method="get" accept-charset="utf-8">
    <p><input name="sn" value="<?=$sn?>"><input type="submit" value="Lookup serial"></p>
</form>

我尝试过的另一种方法是

<?php 
$sn = $argv[1]; 
$data = json_decode(file_get_contents( 
       "https://selfsolve.apple.com/warrantyChecker.do?sn=". $sn . "&country=USA"));
echo "Product Description" .$data->PROD_DESCR."\n";
echo "Coverage for " . $sn . " ends on " . $data->COVERAGE_DATE . "\n"; 
?> 
4

1 回答 1

0
<?php

$sn = isset($_GET['sn']) ? $_GET['sn'] : '';

if($sn)
{
    $url = 'https://selfsolve.apple.com/warrantyChecker.do?sn='.$sn . "&country=USA";

    $json = file_get_contents($url);

    //This line you are splitting the json form then it wont work
    $json = substr($json, 5, -1);

    $json_obj = json_decode($json);

    if(isset($json_obj->ERROR_CODE))
    {
        echo $json_obj->ERROR_DESC;
    }
    else
    {
        echo "$json_obj->PROD_DESCR <img src=\"$json_obj->PROD_IMAGE_URL\" alt=\"\"><br>";

        echo"Product Description: $json_obj->PROD_DESCR <br>";

        echo"Purchase date: $json_obj->PURCHASE_DATE <br>";

        echo"Warranty exp date: $json_obj->COVERAGE_DATE <br>";


    }
}
?>
于 2013-05-13T09:12:37.297 回答