2016-03-25 4 views
-1

Wie platziere ich jedes Wort in einem Absatz in seinem eigenen span-Tag? Derzeit bin ich mit explode() und ein Leerzeichen, dies zu tun, aber die ich folgende erhalten:PHP Platzieren Sie jedes Wort in einem Absatz in <span> ohne Interpunktion

"<span>Hello,</span> <span>I</span> <span>am</span> <span>Alec.</span>" 

Ich werde eine Wörterbuch-Suche für jedes Wort verwenden, aber „Hallo“ nicht finden, was ich suche ich. Darüber hinaus style ich die Spanne abhängig von dem ausgewählten Wort (durch ein onClick), also möchte ich das Komma nicht Teil der Spanne sein.

Schließlich möchte ich den folgenden Code füllen:

"<span>Hello</span>, <span>I</span> <span>am</span> <span>Alec</span>." 

Theoretisch wäre es schön, dies zu tun, ohne explodieren() zu verwenden, da ich alle diese Zeichen wieder in den Text einfügen, aber außerhalb der <span>. Gibt es eine Funktion, um dies zu erreichen?

Vielen Dank!

Edit: Ich werde dies für das tägliche Schreiben in verschiedenen Sprachen verwenden, so dass Bindestrich Wörter oder Buchstaben außerhalb von "A-Za-Z" erwartet werden.

+1

Sie sollten den Code umfassen zur Zeit Sie in Ihrer Frage verwenden. – AnotherGuy

+0

Nun, wenn ich bedenke, dass der Code, den ich gerade verwende, oben beschrieben ist und nicht das erreicht, was ich möchte, stimme ich nicht zu. Wenn es dich so glücklich machen würde, explodiert es ("", $ Variable); –

+0

Sie können es mit 'preg_replace' machen – Veniamin

Antwort

2

preg_replace() kann das tun:

$str = 'Hello, I am Alec.'; 
echo preg_replace('/(\w+)/', '<span>${1}</span>', $str); 

Ausgang:

<span>Hello</span>, <span>I</span> <span>am</span> <span>Alec</span>. 
Verwandte Themen