Avatar billede zuran Nybegynder
19. februar 2009 - 15:25 Der er 5 kommentarer og
1 løsning

Anvende funktion på tekst imellem tags (Regular Expressions)

Hej.

Jeg skal ud i en blanding af Regular Expressions og PHP.

Jeg skal ersatte (replace) teksten mellem 2 tags, således der bliver anvendt en funktion, på teksten.

Hvis jeg f.eks skriver:

[tag]Tekst[/tag]

Så skal resultet ende ud med, at der bliver anvendt en funkion på "Tekst", og disse tags ( og ) forsvinder, når det udskrives selvfølgelig. Dvs. at det skal ikke være f.eks <b>Indhold mellem tags</b> men derimod en funktion i PHP, så function("Indhold mellem tags");

Jeg håber i forstår mig. Er der nogen, der kan hjælpe med det? Tak på forhånd.
Avatar billede psychopixi Nybegynder
19. februar 2009 - 15:53 #1
Jeg ved ikke om det er dette du er ude efter?

<?php
$string = "[tag]Tekst[/tag] [tag]Tekst2[/tag] [tag]Tekst3[/tag]";
preg_match_all("/\[\w+\](\w+)\[\/\w+\]/",$string,$matches);

foreach($matches[1] as $text){
    echo $text . "<br/>";
}
?>

Output: Tekst<br/>Tekst2<br/>Tekst3<br/>
Avatar billede elskermad.dk Nybegynder
19. februar 2009 - 19:54 #2
du skal have fat i e-flaget i en preg_replace-funktion

print preg_replace("/\[tag\](.+?)\[\/tag\]/e",funktion($1),"fdsjf ndjs [tag]nfjdn jfnds jkfnjkds[/tag]");

utestet
Avatar billede zuran Nybegynder
19. februar 2009 - 22:03 #3
Jeg nåede kun lige at prøve din elskermad.dk, da jeg bliver nød til at smutte.

Jeg er endt ud med, at have den således her:

$text = preg_replace("/\[url\](.+?)\[\/url\]/e", url("$1"), $text);

Det virker dog ikke helt. Den fjerner alle punktummer fra $1, så jeg kan ikke se om det virker.
Avatar billede elskermad.dk Nybegynder
20. februar 2009 - 09:37 #4
alle punktummer? hvad er input og hvad bliver output?
Avatar billede zuran Nybegynder
21. februar 2009 - 14:31 #5
Input eksempel: www.google.dk
Output: wwwgoogledk
Avatar billede zuran Nybegynder
05. marts 2009 - 14:45 #6
Prøver på ny.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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