Php 第二次解码json不起作用

Php 第二次解码json不起作用,php,json,curl,Php,Json,Curl,我不熟悉使用curl和json。我得到$courier、$ship_id和$rate的正确值。 但在$obj1中没有值。我已经检查了我的链接,它返回的json很好。 我不知道这里有什么问题。这可能是因为curl的作用不会超过一次/两次吗? 请帮忙。提前谢谢 <?php $a = 1; if( $a == '1' ) { $b = 'www.somelink.com?ship_id='.$ship_id.'&service_ty

我不熟悉使用curl和json。我得到$courier、$ship_id和$rate的正确值。 但在$obj1中没有值。我已经检查了我的链接,它返回的json很好。 我不知道这里有什么问题。这可能是因为curl的作用不会超过一次/两次吗? 请帮忙。提前谢谢

<?php                           
$a = 1;
if( $a == '1' ) {

$b = 'www.somelink.com?ship_id='.$ship_id.'&service_type='.$currier_name.'&rates='.$rate;

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $b);
$result = curl_exec($ch);
curl_close($ch);

$obj = json_decode($result, true);
print_r($obj);

$courier = $obj['ship']['0']['Service'];
$ship_id = $obj['ship_id'];
//echo $courier;
$rate = $obj['ship']['0']['Rate'];

$currier_name = str_replace(' ', '%20', $courier);

$a = 'www.xyz.com';
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_URL, $a);
$result1 = curl_exec($ch1);
curl_close($ch1);

$obj1 = json_decode($result1, true);

if(empty($obj1))
{
$courier = ""; $ship_id="" ; $rate="";
$courier = $obj['ship']['1']['Service'];
$ship_id = $obj['ship_id'];
//echo $courier;
$rate = $obj['ship']['1']['Rate'];

$currier_name = str_replace(' ', '%20', $courier);

$a2 = 'www.xyz.com?ship_id='.$ship_id.'&service_type='.$currier_name.'&rates='.$rate;
echo $a2;
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_URL, $a2);
$result2 = curl_exec($ch2);
curl_close($ch2);

$obj1 = json_decode($result2, true);
print_r($obj1); 
}   

}



$result2
的值是多少?@BizzyBob$result2不返回任何内容。
$currier\u name=str\u replace('''%20',$courier)这不是对任何东西进行URL编码的正确方法,除了空格(即使这样,我猜这可能是外来字符集或二进制数据的问题)。。。停止这样做,您的currier名称并不是X个空格的唯一组合。相反,请执行以下操作:
$a2='www.xyz.com?ship_id='.urlencode($ship_id)。&service_type='.urlencode($currier_name)。&rates='.urlencode($rate)-或者更好,
$a2='www.xyz.com?'。http_build_查询(数组('ship_id'=>$ship_id,'service_type'=>$currier_name,'rates'=>$rate))可能尝试添加:
curl\u setopt($ch2,CURLOPT\u SSL\u VERIFYHOST,false)
<td>
<input class="carrier input-text" value="<?php echo $courier; ?>" type="text" name="carrier" id="carrier" style="width:100%;"/>
</td>
<td>
<input class="required-entry input-text" value="<?php echo $obj1['tracking_id']; ?>" type="text" id="tracking_id" name="tracking_id" style="width:100%;"/>
</td>
<td>
<input class="required-entry input-text" value="<?php echo $obj1['path']; ?>" type="text" id="label_path" name="label_path" style=""/> 
</td>