preg_replace, str_replace i substr_replace nie działają w specjalnych warunkach
Mam następujący kod: ten kod znajduje wszystkie znaczniki html w łańcuchu i zastępuje je [[0]], [[1]], [[2]] itd. (Przynajmniej to jest zamierzone, ale nie działa) ;
$str = "some text <a href='/review/'>review</a> here <a class='abc' href='/about/'>link2</a> hahaha";
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",$str, $out, PREG_OFFSET_CAPTURE);
$count = 0;
foreach($out[0] as $result) {
$temp=preg_quote($result[0],'/');
$temp ="/".$temp."/";
preg_replace($temp, "[[".$count."]]", $str,1);
$count++;
}
var_dump($str);
Ten kod znajduje wszystkie znaczniki w łańcuchu i zastępuje je [[0]], [[1]] i [[2]] i tak dalej. używałempreg_match_all
z PREG_OFFSET_CAPTURE. Wyjście zpreg_match_all
jest zgodnie z oczekiwaniami. Jednak,preg_replace
, substr_replace
, istr_replace
nie działają podczas podstawiania tagów[[$count]]
. Próbowałem wszystkich trzech metod zastępowania ciągów i żadna z nich nie działa. Proszę wskazać mi właściwy kierunek. Czy może to spowodować coś w php.ini? Z góry dziękuję.