Ich schrieb diesen PHP-Code einige Substitutionen zu machen:Wie verwende ich den regulären Ausdruck preg_replace, um Text zu finden und zu ersetzen?
function cambio($txt){
$from=array(
'/\+\>([^\+\>]+)\<\+/', //finds +>text<+
'/\%([^\%]+)\%/', //finds %text%
);
$to=array(
'<span class="P">\1</span>',
'<span>\1</span>',
);
return preg_replace($from,$to,$txt);
}
echo cambio('The fruit I most like is: +> %apple% %banna% %orange% <+.');
in diese Resultierende:
The fruit I most like is: <span class="P"> <span>apple</span> <span>banna</span> <span>orange</span> </span>.
Allerdings musste ich die Frucht des span-Tags identifizieren, wie folgt aus:
The fruit I most like is: <span class="P"> <span class="t1">apple</span> <span class="t2">banana</span> <span class="t3">coco</span> </span>.
Ich würde eine Frucht kaufen, zu der man einen regulären Ausdruck findet, um das zu erreichen :-)
Whit der Xavier Barbosa Hilfe, kam ich zu diese letzte sollution:
function matches($matches){
static $pos=0;
return sprintf('<span class="t%d">%s</span>',++$pos,$matches[1]);
}
function cambio($txt){//Markdown da Atípico : Deve ser usado depois do texto convertido para markdown
$from=array(
'/\=>(.+?)<\=/', //finds: =>text<=
'/\+>(.+?)<\+/', //finds +>text<+
);
$to=array(
'<span class="T">\1</span>',
'<span class="P">\1</span>',
);
$r=preg_replace($from,$to,$txt);
return preg_replace_callback('/%(.*?)%/','matches',$r);//finds %text%
//'/%((\w)\w+)%/' //option
}
die Klasse der inneren Spannweite (s) class = "b") ist immer gleich dem ersten Buchstaben der Frucht? – Ass3mbler
Schreiben Sie Ihre eigene Template-Sprache in PHP? Vorsicht vor [BobX] (http://thedailywtf.com/Articles/We-Use-BobX.aspx). – Nathan
Ass3bler, Entschuldigung, ich hatte nicht die Absicht, eine Beziehung mit dem ersten Buchstaben des Inhalts herzustellen. Ich habe die Klassennamen wie folgt geändert: t1, t2 und t3. – Roger