PHP curl后json_decode无法将json转换成数组

整了嗯久,PHP curl后json_decode无法将json转换成数组;最后才得到原因:

curl返回的数据中带有bom格式,需要转换;


有些返回数据直接:

print_r(json_decode($data,true)); 

就可以转换。

		$url = "http://localhost/web_services.php";
		$post_data = array ("username" => "bob","key" => "12345");
		
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_POST, 1);// post的变量
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
		
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回    
		curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回  
		$output = curl_exec($ch);
		curl_close($ch);//打印获得的数据
		print_r($output); 
		
		
		得到数据:
		{"code_img_url":"https:\/\/pay.swiftpass.cn\/pay\/qrcode?uuid=https%3A%2F%2Fqr.alipay.com%2Fbax00722bbvbiqp1yp3960a6","code_url":"https:\/\/qr.alipay.com\/bax00722bbvbiqp1yp3960a6"}
		
		转换:
		if(preg_match('/^\xEF\xBB\xBF/',$output))  
        {  
            $output = substr($output,3);  
        }  
        $info = json_decode(trim($output),true);  
		
		print_r($info); 
		
		array(2) {
		  ["code_img_url"] => string(95) "https://pay.swiftpass.cn/pay/qrcode?uuid=https%3A%2F%2Fqr.alipay.com%2Fbax00722bbvbiqp1yp3960a6"
		  ["code_url"] => string(46) "https://qr.alipay.com/bax00722bbvbiqp1yp3960a6"
		}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值