2016-10-18 3 views
0

Ich habe eine Liste mit dieser Strukturzwei Teile der gleichen Zeichenfolge mit PHP

Boss: (test 23, of 2014) 

Boss: (test 42, of 2015) 

Boss: (test 70, of 2016) 

Wie kann ich die Zahlen in der Zeichenkette erfassen und wickeln dann in Spannweiten? So wird die Struktur am Ende wie folgt:

Boss: (test <span class="test_23">23</span>, of <span class="year_2014">2014<span>) 

Boss: (test <span class="test_42">42</span>, of <span class="year_2014">2015<span>) 

Boss: (test <span class="test_70">70</span>, of <span class="year_2016">2014<span>) 
+2

Start mit 'preg_replace()' – nogad

Antwort

2

Diese Funktion kann hier helfen

Schritt eins:

preg_replace('# ([0-9]{2}),#','<span class="test_$1">$1</span>',$input);

Schritt zwei:

preg_replace('# ([0-9]{4})#','<span class="year_$1">$1</span>',$input);

1

Sie können mit diesem One-Liner wegkommen :

$input = "Boss: (test 23, of 2014)"; 

$output = preg_replace(
    '/Boss: \(test (\d+), of (\d{4,4})\)/', 
    'Boss: (test <span class="test_$1">$1</span>, of <span class="year_$2">$2<span>)', 
    $input); 

Sie können diese fehlertolerant in Bezug auf Leerraum machen wollen, das heißt \s+ für mehrere Leerzeichen zu erlauben, statt hart codierte Leerzeichen verwenden, Registerkarten usw.

Verwandte Themen