Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
响应为多行或单行时的PHP列表函数_Php_Regex_List_Preg Match - Fatal编程技术网

响应为多行或单行时的PHP列表函数

响应为多行或单行时的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

我使用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, $returnmobileno, $statusdetails) = split('\|', $curl_scraped_page);
现在,当我发送这样的短信时,我的聚合器会给出一个单一的响应

 $curl_scraped_page = "success | 919********** | 659613958369444158-117942947553648183"; //THIS IS EXAMPLE 
因此,我使用list函数在连字符之前获取唯一的id
659613958369444158
。在得到一个响应之前我都很好,但是当我得到下面的响应时,我无法从响应中获得第一个唯一的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您的问题是关于在连字符之前获取第一个数字。这就是我的答案。我不知道你在这里想干什么。