响应为多行或单行时的PHP列表函数
我使用CURL方法发布和接收来自SMS聚合器的响应响应为多行或单行时的PHP列表函数,php,regex,list,preg-match,Php,Regex,List,Preg Match,我使用CURL方法发布和接收来自SMS聚合器的响应 $url = "https://www.smsgatewaycenter.com/library/send_sms_2.php?".$request; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $curl_scraped_page = curl_exec($ch); curl_close($ch); list ($status, $ret
$url = "https://www.smsgatewaycenter.com/library/send_sms_2.php?".$request;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
list ($status, $returnmobileno, $statusdetails) = split('\|', $curl_scraped_page);
现在,当我发送这样的短信时,我的聚合器会给出一个单一的响应
$curl_scraped_page = "success | 919********** | 659613958369444158-117942947553648183"; //THIS IS EXAMPLE
因此,我使用list函数在连字符之前获取唯一的id659613958369444158
。在得到一个响应之前我都很好,但是当我得到下面的响应时,我无法从响应中获得第一个唯一的id
多行响应
success | 917*********| 3287615453600499019-106346209426268709
success | 919********* | 3287615453600499019-483762398162272572
success | 9196********** | 3287615453600499019-204615952244351373
success | 917*********| 3287615453600499019-106346209426268709 success | 919********* | 3287615453600499019-483762398162272572 success | 9196********** | 3287615453600499019-204615952244351373
或单行多响应
success | 917*********| 3287615453600499019-106346209426268709
success | 919********* | 3287615453600499019-483762398162272572
success | 9196********** | 3287615453600499019-204615952244351373
success | 917*********| 3287615453600499019-106346209426268709 success | 919********* | 3287615453600499019-483762398162272572 success | 9196********** | 3287615453600499019-204615952244351373
从上面给出多行或单行多响应。我只需要捕获成功/错误
和3287615453600499019
并将其存储在我的数据库中
尽管使用了preg\u match()
,但它还是以某种方式丢失了
我该如何实现它呢?在尝试了3个小时并在这里寻求帮助后,我最终放弃了。/(\d+)-/
应该可以很好地将所需的数字放入:
对不起,我只是在编辑我的问题,我也需要抓住成功。现在,我这样添加。我知道结果了,但是你能告诉我结果对吗<代码>列表($status,$returnmobileno,$statusdetails)=拆分(“\\\”,$str);回显$status。“
”$returnmobileno.“
”$状态详细信息。“
”$结果=预匹配(“/(\d+)\-/”,$statusdetails,$matches);打印($matches[1])我想会的,你试过了吗?正则表达式中不需要额外的反斜杠。是的,我删除了额外的反斜杠,因为我试图从单个正则表达式中获取。这是上面
success 917*********3287615453600499019-10634620942268709 success的输出3287615453600499019
您的问题是关于在连字符之前获取第一个数字。这就是我的答案。我不知道你在这里想干什么。