webForumDet fria alternativet

Manipulera referenser i preg_replace()

3 svar · 219 visningar · startad av Skarre

SkarreMedlem sedan apr. 20012 427 inlägg
#1

Jag försöker se till att texten mellan a-taggarna i länkar bryts efter ett visst antal tecken, men lyckas inte riktigt. Jag antar att man inte kan köra en referens genom en funktion som jag gjort nedan (se den röda koden), så jag undrar om någon kan föreslå vad jag kan göra istället.

//Teststräng
$s = '<a href="http://www.test.se">http://www.dettaarenvaldigtvaldigtvaldigtvaldigtlangurl.se</a> asdasd asd ';

echo preg_replace('/(<a .*>)(.*)(<\/a>)/', '$1'.[red][b]wordwrap("$2",20,'<br>',1)[/b][/red].'$3', $s);
MatteMedlem sedan aug. 20002 975 inlägg
#2

Testa med:

echo preg_replace('/(<a .*>)(.*)(<\\/a>)/e', "'$1'.wordwrap('$2',20,'<br>',1).'$3'", $s);

[EDIT]
webForum-koden lägger visst till mellanslag mellan > och ). De ska inte vara där.

SkarreMedlem sedan apr. 20012 427 inlägg
#3

Perfektion! :)

SkarreMedlem sedan apr. 20012 427 inlägg
#4

Jag kan tillägga att jag var tvungen att lägga till stripslashes() eftersom citationstecknen i strängen blev "slashade".

131 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)