Извлечь данные из строки

1
$str= 'We have new Call Request: Reference = 55823014, Name = Amal, Mobile = 111111'

Как извлечь эту часть из строки, например:

reference |  55823014
Name      |  Amal
Mobile    |  1111111
  • 0
    Выходные данные должны быть переменными или массивом?
Теги:

3 ответа

1
Лучший ответ

используйте регулярные выражения для извлечения

$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

демонстрация

  • 0
    большое Вам спасибо
  • 0
    рад что помог. :)
1

Сначала вы удаляете текст "У нас есть новый запрос на вызов:" из строки. Затем вы остаетесь с основной строкой, содержащей пары значений ключа. Из этого вы взорвите его в массив токенов по запятой, где каждый токен содержит одну пару ключевых значений. Затем вы прокручиваете маркеры и выделяете значение ключа, взрывая его с помощью знака "=". Вот код для него:

<?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);
0

Хорошо, как быстрый подход, это должно работать:

$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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню