Avatar billede dj-sejler Praktikant
21. marts 2005 - 19:53 Der er 8 kommentarer og
1 løsning

kontrol af om tegn findes i strengen

Hej...

jeg har en streng fra en form:

$test = $_POST['test'];

Hvis jeg så vil undersøge om forskellige tegn findes i den streng, hvor gør man det?

hvis eksempelvis '<' findes er den falsk eller sådan noget...


Er der nogen der kan hjælpe?
Avatar billede Slettet bruger
21. marts 2005 - 20:36 #1
if(preg_match("/(<)/", $test)) {
echo "< var i \$test";
} else {
echo "< var ikke i \$test";
}
Avatar billede Slettet bruger
21. marts 2005 - 20:38 #2
du behøver ikke () om <

Nogle tegn skal escapes i preg_match, du kan i stedet bruge strstr

if(strstr($test, '<')) {
echo "< var i \$test";
} else {
echo "< var ikke i \$test";
}
Avatar billede Slettet bruger
21. marts 2005 - 20:40 #3
lige én ting mere.
Hvis du _vil_ have at den skal returnere falsk, hvis tegnet er der, skal du bruge preg_match

if(preg_match("/[^<]*/", $test)) {
echo "< var ikke i \$test";
} else {
echo "< var i \$test";
}

den er ikke testet...
Avatar billede dj-sejler Praktikant
21. marts 2005 - 20:47 #4
det skal den ikke nødvendigvis...
hvis den tegnet findes skal det bare erstates med &lt;
Avatar billede dj-sejler Praktikant
21. marts 2005 - 20:53 #5
jeg har aldrig forstået hvorfor de der "/ /" bliver sat omkring...
og også "/[^ ]*/"
Avatar billede Slettet bruger
21. marts 2005 - 21:03 #6
// er bare (tror jeg, er lige begyndt at se på reg exp) for at vise at "mellem disse er mønstret du skal matche"

hvis du vil erstatte et tegn med andet kan du jo bare bruge ereg_replace():

$test = ereg_replace("<", "&lt;", $test);

den vil erstatte '<' med '&lt;' se evt. www.php.net/ereg_replace
Avatar billede jaw Nybegynder
22. marts 2005 - 19:09 #7
Hvis det altid skal være < til &lt; så er str_replace bedre performance mæssigt. Regulære udtryk brugere flere ressourcer end str_replace. Dog måske ikke noget mærkværdigt, men alligevel.

Eks.:

$str = str_replace("<", "&lt;", $test);
Avatar billede dj-sejler Praktikant
13. oktober 2005 - 01:09 #8
jeg tror det er jaw der skal svare her... så jeg kan få lukket ;)
Avatar billede jaw Nybegynder
13. oktober 2005 - 20:56 #9
Erh, hvis du siger det :)
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