20. maj 2006 - 02:30Der er
14 kommentarer og 2 løsninger
Replace alt ukendt med spørgsmålstegn
Jeg har en "tagwall", som jeg har sat til at replace alle bogstaver, tal og enkelte tegn med billeder.
Men kan man på nogen måde replace et ukendt tegn med "?" ... Altså alle tegn, der ikke er a-z, A-Z, æøåÆØÅ eller !?.,:;-_*)( - de skal laves om til spørgsmålstegn.
$string = "Altså # alle £ tegn, ¤ der & ikke er a-z, A-Z, æøåÆØÅ eller !?.,:;-_*)( - de skal laves om til spørgsmålstegn."; $string = preg_replace("/[^a-zæøåÆØÅ!?.,:;_*)(-]/i", "?", $string);
nielle >> en backslash bruges jo til at escape specialtegn med - derfor skal den selv escapes, hvis den skal optræde som en backslash og ikke bare escape det næste tegn :)
Specialtegn skal normalt ikke escapes når de er inde mellem []-parenteser. F.eks. vil [.] kun matche et punktum, og ikke ”et vilkårligt test” som når det er udenfor.
Dette er på regexp-niveauet, men så er der jo også PHP-niveauet hvor at \-tegnet har en special-funktion. F.eks. når man skriver \n, \t eller \r i en streng.
Hvis der kun blev escapet på PHP-niveauer, så burde 20/05-2006 16:26:33 koden være nok, men hvis der escapes nåde i PHP og i regexp så er det vist 20/05-2006 17:00:10 der skal til.
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.