@Obivankinobi

Составить регулярное вырадение?

Добрый вечер, пытаюсь написать свой первый парсер и столкнулся с регулярными выражениями..
Требуется найти test.phone = 'fb6ca6584y'
Начинаю с:
$page = file_get_contents('https://какой-то сайт') // получаем в виде строки
if (preg_match("/\test.phone\b/i", $page)) {
echo "ЕСТЬ";
} else {
echo "НЕТ";
}

а дальше ступор, как отдельно записать значение в переменную?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
@dimabdc
preg_match("/test\.phone = '(\w+)'/ui", $page)
Полезный ресурс для составления регулярок: https://regex101.com/
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@IceJOKER
Web/Android developer
а дальше ступор, как отдельно записать значение в переменную? - fi2.php.net/manual/ru/function.preg-match.php - посмотрите на третий аргумент
Ответ написан
Комментировать
@OVK2015
$cURLResult = "test.phone = 'fb6ca6584y'";
	$regExpWrapper = "#(?:test.phone\s=\s')(.*?)(?:')#si";
	if(preg_match($regExpWrapper, $cURLResult, $matches) === 1)
	{		
		print_r($matches);
	}
	else
	{
		echo "NOT found";
	}

А сайте все же лучше через cURL тянуть
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
Возьмите кусок текста с номером телефона в скобки, например (\d*), он будет доступен в виде back reference $1 для preg_replace

Как-то так:

echo preg_replace ("/\test.phone\b(\d*)/i", "$1", $value))

скармливаете ваш файл построчно в preg_replace и получаете телефоны
Ответ написан
Ваш ответ на вопрос

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

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