Я построил функцию, которая будет захватывать текст между скобками и выводить их как массив. Но проблема в том, что моя функция выполняет только первый раз в строке.Запустить функцию на всех частях строки 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);
Но это соответствует только первым [купон] и [/ coupon] не другим. Например, когда строка
hello world [coupon]hello && bad && world[/coupon] and also to [coupon] the && bad && world [/coupon]
Он выводит
Hello world <b>hello </b> <i> bad </i><b> world</b> and also to the && bad && world.
что означает замену [coupon]
и [/coupon]
каждый раз, но не форматирует текст внутри них каждый раз.
может быть петля поможет –
вы можете предоставить ан пример строки и результат вы ожидаете? – krzysiej
, но текст извлекается из mysql и его что-то вроде сообщения Wordpress. Итак, сколько я должен запустить цикл. – IdidntKnewIt