webForumDet fria alternativet

preg_replace inuti en preg_replace?

2 svar · 155 visningar · startad av motin

motinMedlem sedan maj 20033 inlägg
#1

Hur får jag det här att fungera?

jag har detta:

$text = "http://www.foob_SHY_ar.com";

$text = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<A TARGET=\"_blank\" HREF=\"".preg_replace('/_SHY_/', '', $1)."\">$1</A>", $text);

alltså:
ta länken och lägg in <a>-taggar runtom så att den blir en länk
src-en får dock INTE innehålla "_SHY_", varför jag istället för att skriva:

%1

skriver jag:

".preg_replace('/_SHY_/', '', $1)."

men då får jag meddelandet:
"Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\Inetpub\major\demomusic\index.php on line 117"

hur göra åt?

MatteMedlem sedan aug. 20002 975 inlägg
#2

Det borde gå att göra något på det här hållet:

<?php 

$text = "http://www.foob_SHY_ar.com";

function shy_replace($link) { 
   $link = str_replace("_SHY_", "", $link);
   return "<A TARGET=\"_blank\" HREF=\"$link\">$link</A>";
}

$text = preg_replace("/([\\\w]+:\\\/\\\/[\\\w-?&;#~=\\\.\\\/@]+[\\\w\\\/])/ie", "shy_replace('$1')", $text);

echo $text;

?>
motinMedlem sedan maj 20033 inlägg
#3

tack, fungerar utmärkt! problemet har naggat mig i flera månader!

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