$str= 'We have new Call Request: Reference = 55823014, Name = Amal, Mobile = 111111'
Как извлечь эту часть из строки, например:
reference | 55823014
Name | Amal
Mobile | 1111111
используйте регулярные выражения для извлечения
$str= 'We have new Call Request: Reference = 55823014, Name = Amal, Mobile = 111111';
preg_match('/Reference =(.*?), Name =(.*?), Mobile =(.*)/', $str, $m);
print_r($m);
//if you want to display an item at a time
echo "Reference = ".$m[1].PHP_EOL;
echo "Name = ".$m[2].PHP_EOL;
echo "Mobile = ".$m[3].PHP_EOL;
это даст вам
Array
(
[0] => Reference = 55823014, Name = Amal, Mobile = 111111
[1] => 55823014
[2] => Amal
[3] => 111111
)
Reference = 55823014
Name = Amal
Mobile = 111111
Сначала вы удаляете текст "У нас есть новый запрос на вызов:" из строки. Затем вы остаетесь с основной строкой, содержащей пары значений ключа. Из этого вы взорвите его в массив токенов по запятой, где каждый токен содержит одну пару ключевых значений. Затем вы прокручиваете маркеры и выделяете значение ключа, взрывая его с помощью знака "=". Вот код для него:
<?php
$str = 'We have new Call Request: Reference = 55823014, Name = Amal, Mobile = 111111';
$str = substr($str, strpos($str, ':') + 1);
$arr = explode(',', $str);
$data = array();
foreach ($arr as $item) {
$tokens = explode('=', $item);
$key = trim($tokens[0]);
$val = trim($tokens[1]);
$data[$key] = $val;
}
var_dump($data);
Хорошо, как быстрый подход, это должно работать:
$str= 'We have new Call Request: Reference = 55823014,
Name = Amal, Mobile = 111111';
$str = strchr($str, "Reference");
$str = explode(',', $str);
foreach ($str as $item) {
$tokens = explode('=', $item);
$key = trim($tokens[0]);
$val = trim($tokens[1]);
echo $key . " | " . $val . PHP_EOL;
}
Вывод:
Reference | 55823014
Name | Amal
Mobile | 111111