Avatar billede palito Nybegynder
03. april 2006 - 14:29 Der er 10 kommentarer og
1 løsning

Problemer med preg_replace

Hvorfor virker det her ikke:

<?php
function lavlink($url) {
return '<a href="$url">$url</a>';
}

$variabel = "Prøv at tjekke <url=www.eksperten.dk>";
echo preg_replace("/<url=(.*?)>/", lavlink("\\1"), $variabel);
?>
Avatar billede erikjacobsen Ekspert
03. april 2006 - 14:33 #1
return "<a href=\"$url\">$url</a>";
Avatar billede palito Nybegynder
03. april 2006 - 15:18 #2
tak erikjacobsen

men hvorfor udskriver $url "\1" med echo?

<?php
function lavlink($url) {
echo $url;
return "<a href=\"$url\">http://$url</a>";
}

$variabel = "Prøv at tjekke <url=www.eksperten.dk>";
echo preg_replace("/<url=(.*?)>/", lavlink("\\1"), $variabel);
?>
Avatar billede erikjacobsen Ekspert
03. april 2006 - 15:25 #3
"men hvorfor udskriver $url "\1" med echo?"  - jeg forstår ikke hvad du spø'r om
Avatar billede palito Nybegynder
03. april 2006 - 15:30 #4
Kan du hjælpe mig med at inkludere en fil igennem min preg_replace?

<?php
function lavlink($url) {
return include($url);
}

$variabel = "Lad os inkludere <url=tagwall.php>";
echo preg_replace("/<url=(.*?)>/", inkluderfil("\\1"), $variabel);
?>
Avatar billede erikjacobsen Ekspert
03. april 2006 - 15:31 #5
Ok, jeg kan se hvad du mener alligevel. Du får ikke værdien med som parameter i en preg_replace - jeg kiggede på selve funktionen. Prøv at se den her, der sku' gi' det samme - så sku' du ku' forstå hvad der sker:

<?php
function lavlink() {
return '<a href="\1">\1</a>';
}

$variabel = "Prøv at tjekke <url=www.eksperten.dk>";
echo preg_replace("/<url=(.*?)>/", lavlink(), $variabel);
?>
Avatar billede erikjacobsen Ekspert
03. april 2006 - 15:32 #6
Nej, du kan ikke bare lave en include - en preg_replace er en replace
Avatar billede palito Nybegynder
03. april 2006 - 15:32 #7
Hvordan ville du så foreslå at jeg gjorde det?

En kommando skal kunne inkludere en fil
Avatar billede erikjacobsen Ekspert
03. april 2006 - 15:36 #8
Det du skal have til gengæld er denne udgave - bemærk "e"-et, og at andet argument er en streng

<?php
function lavlink($u) {
return file_get_contents($u);
}

$variabel = "Prøv at tjekke <inc=x.html>";
echo preg_replace("/<inc=(.*?)>/e", "lavlink('\\1')", $variabel);
?>
Avatar billede palito Nybegynder
03. april 2006 - 16:09 #9
tak

lav et svar
Avatar billede erikjacobsen Ekspert
03. april 2006 - 16:58 #10
Jeg samler slet ikke på point, tak.
Avatar billede palito Nybegynder
03. april 2006 - 18:51 #11
ok. men tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester