php получить строку между тэгами - получение строки между тэгами - значение между тэгами функция

предлагаю для решения данной проблемы использовать такую вот связку из пары функций =
эта функция возвращает массив строк, окружённых тэгами переданного вида.

ПРИЧЁМ открывающий тэг может быть расширен дополнительными значениями (см. регулярное выражение).=

function strs_btw_tags($opentag,$str)
{
   
  $result="";
  
  //$rreg ="|<[^>]+>(.*)</[^>]+>|U"; - это базовый паттерн о нём я пишу на этом же сайте.
  $p1 ="|<";
  $p2 ="[^>]*>(.*)</";
  $p3 =">|Us";
  $tag = free_tag_from_brackets($opentag);
  
  $pattern = $p1.$tag.$p2.$tag.$p3 ; // create pattern
   //$pattern = "|<[^>]+>(.*)</[^>]+>|Us" ; // create pattern
// $pattern = "|<ll[^>]*>(.*)</ll>|Us" ;
 
 log_light("TEXT = ".$str);
  log_light("TTag=".$opentag);
  log_light("pattern=".$pattern);
  
  if ( $n = preg_match_all($pattern,$str,$matches,PREG_PATTERN_ORDER )!= 0 )
  {
   $result = $matches[1];
  }
  log_light("result array 0 =". arr_to_str($matches[0]));
  log_light("result array 1 =". arr_to_str($matches[1]));
  
  return $result; 
} 


/*удалит из переданного азового тэга угловые скобки и слэш (результат в
 возвращаемом значении)*/
function free_tag_from_brackets($tag)
{
    $result="";   
   $arr= str_to_arr($tag);
	foreach ($arr as $val)
	{
	  if (($val!='<')&&($val!='>')&&($val!='/'))
	  {
	    $result.=$val;   
	  }
	}
	return $result; 
}

vedro-compota's picture

log_light - это функция лога - ещё следует удалить или реализовать самостоятельно.

_____________
матфак вгу и остальная классика =)

так называемое базовое выражение было здесь = http://fkn.ktu10.com/?q=node/1997