@Kirill-Gorelov
С ума с IT

Распарсить и получить слово между двумя символами, php?

Всем привет.
Надо из текста, получить город и телефон в виде (Москва: +71234566789).
Было найдено решение.
$text = explode("Москва", $text);
$text = explode("\n", $text[1]);
echo $text[0];

Как теперь сделать, что бы таким же образом найти и другой город?
$text = explode("Питер: ", $text);
$text = explode("\n", $text[1]);
echo $text[0];
$text = explode("Москва: ", $text);
$text = explode("\n", $text[1]);
echo $text[0];

Как это правильно написать??
Пробовал регулярным выражением
$pattern2 = "|Москва: (.+?) \n |is"; 
  preg_match($pattern2, $text, $datee); 
echo $datee;

Но, чего-то не получилось!
  • Вопрос задан
  • 1424 просмотра
Решения вопроса 1
alsopub
@alsopub
Попробуйте так:
$s = "Москва: +71234566789   Питер: +7111111111";
preg_match_all('/(Москва|Питер):\s*(\S+)/m', $s, $r);
foreach ($r[0] as $v) {
  echo($v.'<br>');
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GhOsT_MZ
Ростов-на-Дону
Я бы сделал так:
if ( preg_match( '#(.+):\s((\+)?[\s0-9\(\\)-]+)#ui', $str, $matches ) )
{
    var_dump( $matches );
}


В итоге в массиве получаем и город, и номер телефона.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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