Задать вопрос
@SteepNET

Как выбрать номера телефонов из строки?

Добрый день! Прошу помощи убрать лишнее из вывода на php

Вывод такой
Channel: Exten: CLCID: ========================================================================================== Channel: PJSIP/739-00009cf3/Dial Up 00:01:15 Exten: s CLCID: "CID:9622088888" <79379853222> Channel: PJSIP/814-00009cf5/Dial Up 00:00:25 Exten: s CLCID: "CID:9622088888" <89119120799> Channel: PJSIP/BEELINE_9622088888-00009cf4/AppDial Up 00:01:13 Exten: CLCID: "" <9622088888> Channel: PJSIP/BEELINE_9622088888-00009cf6/AppDial Up 00:00:25 Exten: CLCID: "" <9622088888> Objects found: 4


Пытаюсь выбрать тут
1.739 это из PJSIP/739-00009cf3/ этот номер разумеется может быть любым но всегда 3 цифры
2.+79379853222 это из <+79379853222>

И вывести это что то типа {"739":"+79379853222"}
А если еще получиться время завернуть сюда же это будет вообще космос!
{"739":"+79379853222":"00:01:15"}
В Выводе может быть несколько разных номеров ,вот тут я встрял, как их разделять, как их выципить незнаю
Причем вот такие Channel: PJSIP/BEELINE_9622088888-00009cf4/ ненадо , нужно только 3-х значные номера вычленять..

Пробовал preg_match() но нехватает авыка =(
Прошу помощи!
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
@dodo512
https://regex101.com/r/qVEDaP/1
PJSIP/(\d+)\S+ Up ([\d:]+).+?<(\d+)>

$str = '
Channel: Exten: CLCID: ========================================================================================== Channel: PJSIP/739-00009cf3/Dial Up 00:01:15 Exten: s CLCID: "CID:9622088888" <79379853222> 
Channel: PJSIP/814-00009cf5/Dial Up 00:00:25 Exten: s CLCID: "CID:9622088888" <89119120799> 
Channel: PJSIP/BEELINE_9622088888-00009cf4/AppDial Up 00:01:13 Exten: CLCID: "" <9622088888> 
Channel: PJSIP/BEELINE_9622088888-00009cf6/AppDial Up 00:00:25 Exten: CLCID: "" <9622088888> 
Objects found: 4
';

preg_match_all('~PJSIP/(\d+)\S+ Up ([\d:]+).+?<\K\d+~s', $str, $m, PREG_SET_ORDER);

print_r($m);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
revenger
@revenger
49.5
Пробуйте дальше.
За вас никто не сделает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы