получить строку из тэгов 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
- 1875 reads