2017-06-13 32 views
0

我正在使用BulkSMS这是一项SMS服务,我想要使用URL响应来获取剩余的邮件数量。从URL字符串中分离爆炸数组

这是URL(用密码移除): https://www.bulksms.co.uk/eapi/user/get_credits/1/1.1?username=<username>&password=<password>

这然后输出类似于: 0|2000.00

按照documentation第一部分是指错误消息和所述第二部分是指没有。剩余的消息:status_code|status_description

因此,使用cURLexplode我可以通过一个数组的URL响应分裂,但我的问题是我怎么输出2000.00 (status_description),因为我只希望0 (status_code)错误检查?

function get_data($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    $array = explode('|', $data); 
    print_r($array); 
} 

如果有帮助,这是什么样的功能输出: Array ([0] => 0 [1] => 2000.00)

而且我知道我可以使用substrstrpos获得剩余的消息,如下图所示,但我想用status_code为错误检查。

$remaining_sms = substr($data, strpos($data, "|") + 1);  
echo $remaining_sms; 
+2

嗯...'echo $ array [0];''和'echo $ array [1];' – AbraCadaver

+0

哈井我觉得我好笨! –

回答

2

如果你只是想在管道分隔消息的第二部分,然后就返回数组的那部分,因为你知道指数...

这将输出你想要什么

function get_data($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    $array = explode('|', $data); 
    print_r($array[1]); 
} 

或者你也可以返回它,然后在后面的代码

function get_data($url) { 
     $ch = curl_init(); 
     $timeout = 5; 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
     $data = curl_exec($ch); 
     curl_close($ch); 
     $array = explode('|', $data); 
     return $array; 
    } 

解析它无论哪种方式,我不明白为什么你已经得到它substring -