получить строку из тэгов php
Primary tabs
получение массива строк из исходного текста и удаление тэгов из каждого элемента массива =
function strs_btw_tags($opentag,$closetag,$str) // вытащит значения из тэгов вида (тэг1строкатэг2) - причём первый - открывающий тэг может быть расширен спец параметрами.
{
$oppart = get_expand_tag_value($opentag);
$clpart = "(".$closetag.")";
//$oppart = "(\[".$tagname."\]|\[".$tagname."=\".{0,}\"\])"; // регулярное выражение для открывающего тэга
// $clpart = "(\[\\\\".$tagname."\])"; //регулярное выражение для закрывающего тэга.
log_light("--- str_btw_tags()-- we start searching for ".$oppart." and ".$clpart." in << ".$str.">>");
$pattern = "(".$oppart.".*".$clpart.")is"; // шаблон-результат - процесс поиска не зависит от регистра и производится по всему тексту.
if (preg_match_all($pattern,$str,$matches,PREG_PATTERN_ORDER )!= 0 ) // если не было ошибки или если встретили хотя бы одно подходящее знаение.
{
log_light("--- str_btw_tags()-- WE HAVE matches ! ");
$arr = free_from_tags($oppart,$clpart,$matches[0]);
$result= $arr;
}
else
{
log_light("--- str_btw_tags()-- NO matches ");
$result= 0; // просто возвращаем исходный текст
}
return $result;
}
/*Функция получает регулярные выражения для открывающего и закрывающего тэга+ массив строк
- и удаляет тяги из каждого элемента массива*/
function free_from_tags($oppart,$clpart,$arr)
{
$ert = $oppart."is";
$i=0;
foreach ($arr as $el)
{
$el = preg_replace($clpart,"",$el); // сначала убраем закрывающий тэг - так как он проще как выражение
$el = preg_replace($ert,"",$el);
$arr[$i]=$el;
log_light("free_from_tags [".$i."] = ".$el);
$i++;
}
log_light("ARR = ".arr_to_str($arr));
return $arr;
}- Log in to post comments
- 2086 reads