从URL字符串中分离爆炸数组

时间:2017-06-13 20:14:57

标签: php curl

我使用的是BulkSMS,这是一项短信服务,我想知道我使用网址响应留下了多少条消息。

这是网址(已删除密码): 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),因为我只想要{{1}用于错误检查?

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 )substr来获取剩余的消息,如下所示,但我想使用strpos进行错误检查。

status_code

1 个答案:

答案 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;
    }

无论哪种方式,当你已经得到它时,我都不知道你为什么要进行子串?

相关问题