我使用的是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
所以使用cURL
和explode
我可以通过数组获取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
答案 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;
}
无论哪种方式,当你已经得到它时,我都不知道你为什么要进行子串?