webForumDet fria alternativet

regexp-pattern: ersätta taggar i text

PHP

2 svar · 248 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Frågan#1
$str = "lång lång lång <sub>text</sub> som innehåller<sub>flera</sub> sub-taggar";

$pattern = "/\<sub>([^\[]*)\<\/sub>/i"; 
$replacement = "<small>$1</small>"; 

$str = preg_replace($pattern, $replacement, $str);

Fungerar ju inte riktigt som planerat. Resultatet blir
lång lång lång <small>text</sub> som innehåller<sub>flera</small> sub-taggar vilket ju är fel.
Tips på ett korrekt pattern?

r/ så rotar man runt lite bland sina äldre filer och hittar ett fungerande mönster:
/\<sub>(.*?)<\/sub>/i

/r2 trodde jag.. det fungerar inte om det är en radbrytning (\n) mellan sub-taggarna.

/r3 Hehe.. nu har jag löst det (mha sökfunktionen):
/\<sub>((.|\n)+?)<\/sub>/i

Medlem sedan apr. 200354 inlägg
#2

Så här hade jag gjort:

$text = "det här är en sträng <sub>som innehåller\nbåde taggar</sub> och <sub>radbrytningar</sub>";
$text = preg_replace('/<sub>(.*?)<\\/sub>(.|$)/is','<small>\\1</small>\\2',$text);
Medlem sedan mars 20025 907 inlägg
#3

$strInput innehåller en sträng som ser ut ungefär såhär:
<title>Lite text</title>
<link>http://url..</link>
<description>Ytterligare en massa text</description>

Ovanstående matas in i nedstående funktion och meningen är att jag ska få ut något liknande:
<a href="http://url" title="Ytterligare en massa text">Lite text</a>
men det vill sig inte riktigt, utan resultatet blir:
Lite text</a><a href="http://url" title="Ytterligare en massa text">, dvs title-texten kommer först. Någon som vet hur jag löser detta?

$patterns[0] = '/<link>(.*?)<\/link>/is';
$patterns[1] = '/<description>(.*?)<\/description>/is';
$patterns[2] = '/<title>(.*?)<\/title>/is';
	
$replacements[0] = '<a href="$1" ';
$replacements[1] = 'title="$1" target="_blank">';
$replacements[2] = '$1</a>';
$temp = preg_replace($patterns,$replacements,$strInput);
266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)