Zbudowałem funkcję, która przechwyci tekst między nawiasami i wypisze je jako tablicę. Ale problem polega na tym, że moja funkcja wykonuje się tylko pierwszy raz w ciągu znaków.Uruchomić funkcję na wszystkich częściach string php
function GetBetween($content,$start,$end){
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[1]);
return $r[0];
}
return '';
}
function srthhcdf($string){
$innerCode = GetBetween($string, '[coupon]', '[/coupon]');
$iat = explode('&&', $innerCode);
$string = str_replace('[coupon]','',$string);
$string = str_replace('[/coupon]','',$string);
$newtext = '<b>'.$iat[0].'</b> <i>'.$iat[1].'</i><b>'.$iat[2].'</b>';
$string = str_replace($innerCode,$newtext,$string);
return $string;
}
$Text = srthhcdf($Text);
Ale pasuje tylko pierwszy [kupon] i [/ kupon], a nie inne. Jak wtedy, gdy ciąg jest
hello world [coupon]hello && bad && world[/coupon] and also to [coupon] the && bad && world [/coupon]
wyprowadza ona
Hello world <b>hello </b> <i> bad </i><b> world</b> and also to the && bad && world.
co oznacza, że zastępuje [coupon]
i [/coupon]
za każdym razem, ale nie formatuje tekst w nich za każdym razem.
może pętla pomoże –
można zapewnić pl przykład ciąg i czego oczekujesz? – krzysiej
, ale tekst jest pobierany z mysql i jest podobny do posta z wordpress. Ile razy powinienem uruchomić pętlę. – IdidntKnewIt