mboost-dp1

"url-tag" konvertering i php


Gå til bund
Gravatar #1 - Tang
23. aug. 2008 16:21
Jeg er ved at forbedre php-koden på min hjemmeside lidt. I den anledning ville jeg gerne lave en smart måde at skrive links på...
På mange hjemmesider (inkl. dette forum) kan man skrive fx:

[ url = adresse]Tekst[ /url]
(Her skrevet med mellemrum, for at det ikke bliver tolket som link)

Kan nogen hjælpe mig med php-koden til at konvertere dette til helt almindelig html?
Gravatar #2 - Windcape
23. aug. 2008 16:23
Regulare expressions, gogo learn!


"#\[url=(.*?)\](.*?)\[/url\]#"

'<a href="$1">$2</a>'


# # er delimiters, til jer som ikke er bekendt med hvordan regex fungere i php.
Gravatar #3 - Tang
23. aug. 2008 16:45
Tak for det!
Jeg kan dog ikke rigtig få det til at virke...
Eksempel:
$link = "[ url = Noget]Link[ /url]";
$new_link = ereg_replace("#\[url=(.*?)\](.*?)\[/url\]#",'<a href="$1">$2</a>',$link);
echo $new_link;

(Endnu engang har jeg brugt mellemrum, for at det ikke bliver tolket som link)
Gravatar #4 - Tang
23. aug. 2008 17:36
Så har jeg løst problemet! Jeg fandt en anden regular expression...

$content = preg_replace(”@\[url=(.+?)\](.+?)\[\/url\]@i”, “<a href=\”$1\”>$2</a>”, $content);
Gravatar #5 - Windcape
23. aug. 2008 19:22
Du brugte ereg i første forsøg, hvilket IKKE er hvad jeg skrev. Jeg skrev en perl style expression, thus preg (p = perl).

Den anden du har fundet er magen til min :p
Gravatar #6 - Tang
23. aug. 2008 21:32
#5
Hvis du læser #1, så vil du se, at jeg spurgte efter php-kode... Der udover nævner du ikke noget om Perl i #2. Så jeg kan ikke rigtig se hvor JEG har misforstået noget...
Men du har ret. Det jeg endte med at lave, er det samme som det du skrev
Gravatar #7 - Windcape
23. aug. 2008 22:48
Så jeg kan ikke rigtig se hvor JEG har misforstået noget...
Ved ikke at læse nok i manuallen :p

Jeg skrev regex, fordi det er kompliceret for en begynder. Men ideen var jo at du skulle lære noget :)

At slå korrekt op i en manual/api er også vigtigt for indlæring.

(Derudover, er det så EKSTREMT nemt at google søge dette emne, at jeg ikke fatter at du spurte)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login