Функция выполняет конкретную и часто возникающую задачу - выбрать из строки подстроку по заданному регулярному выражению и узнать её начальную позицию в этой строке.
Findes возвращает первое или единственное вхождение подстроки в исходной строке, а в случае неудачи возвращает пустую строку.
Через третий параметр функция по ссылке возвращает позицию найденного фрагмента, начиная с нулевого значения, или -1, если фрагмент не найден.
Замечание: Функция Findes надстроена над функцией PHP: preg_match и находит не более одной подстроки исходной строки, соответствующей регулярному выражению. Для нахождения всех вхождений в строку по регулярному выражению следует воспользоваться функцией MakeRegExp.
Синтаксис
$Result=Findes($preg,$string,&$point)
Параметры
$preg - текст регулярного выражения; $string - текст, который должен быть обработан регулярным выражением; $point - позиция начала найденного фрагмента после работы регулярного выражения (параметр по ссылке). $point=-1, если фрагмент не найден.
Возвращаемое значение
$Result - найденный фрагментов после работы регулярного выражения или пустая строка, если фрагмент не найден.
<?php namespace prown;
// PHP7/HTML5 *** Findes.php ***
// ****************************************************************************
// * TPhpPrown Выбрать из строки подстроку, *
// * соответствующую регулярному выражению *
// * *
// * v1.1, 23.05.2019 Автор: Труфанов В.Е. *
// * Copyright © 2019 tve Дата создания: 02.04.2019 *
// ****************************************************************************
function Findes($preg,$string,&$point=-1)
{
$value=preg_match($preg,$string,$matches,PREG_OFFSET_CAPTURE);
if ($value>0)
{
$Result=$matches[0][0];
$point=$matches[0][1];
}
else
{
$Result='';
$point=-1;
}
return $Result;
}
// ************************************************************* Findes.php ***
Сообщения выполненного теста функции