Avatar billede dorgbar Nybegynder
20. juli 2004 - 20:22 Der er 3 kommentarer og
1 løsning

seach/replace en variabel text

jeg har et forum med nogle replaces f.eks
[b bliver replaced med <b>.
nu er jeg så gået et skridt vidre og vil lave et quote system(hvor man henter en texten fra en tidligere besked og derefter svar på den).
jeg ville gerne have at skriv [Q12] f.eks så hentede den beskedden med id'et 12. Problemmet er nu at jeg ikke ved hvordan man lave søg/erstat når man ikke ved hvilket id det er.
nogen der kan hjælpe :?
Avatar billede detox Nybegynder
20. juli 2004 - 20:48 #1
Jeg tror jeg vil lave det med en lille funktion og en preg_replace:


function hent_besked($id) {
    if ($res = mysql_result(mysql_query("SELECT besked FROM tabel WHERE id='$id'"),0)){
        return $res;
    } else {
        return "BESKED IKKE FUNDET!";
    }
}

$str = preg_replace("/\[Q(\d+)\]/e", "hent_besked($1)", $str);
Avatar billede dorgbar Nybegynder
20. juli 2004 - 21:25 #2
hmm ser ud til at virke men hvad er de der underlige tegn? og hvad gør de godt for
Avatar billede dorgbar Nybegynder
20. juli 2004 - 21:29 #3
ja det virker du må godt oprette svar :P
Avatar billede detox Nybegynder
20. juli 2004 - 22:14 #4
Tegnene er syntaksen til "Regular Expression Functions (Perl-Compatible)".
php-manualen forklarer det ganske fint:
http://dk2.php.net/manual/en/ref.pcre.php
http://dk2.php.net/manual/en/pcre.pattern.modifiers.php
http://dk2.php.net/manual/en/pcre.pattern.syntax.php
Ellers er der mange steder på nettet, hvor man kan læse om det, fx:
http://www.perldoc.com/perl5.6/pod/perlre.html
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