Olebole: Er den 1 millisekund hurtigere? ;) ej, men hvor meget kan performance betyde her, med mindre man skal køre den samme kommando i et kæmpe loop.
Synes godt om
Slettet bruger
11. februar 2006 - 16:04#4
ole >> Det var satans som du skal blande dig, hehe. Jeg går ikke udfra simonhans skal køre dette tjek 100 gange i sekundet, og det er nemmere at gå til ereg end preg, hvis man ikke har kendskab til tingene i forvejen.
Synes godt om
Slettet bruger
11. februar 2006 - 16:13#5
hvis jeg vil tillade alle bogstaver store og små men ikke æøå og ikke mellemrum og ikke andre tegn hvad blir den så
hvordan skriver man at man ikke vil have mellemrum
Synes godt om
Slettet bruger
11. februar 2006 - 16:16#6
Hvis du KUN vil have alle bogstaver (store og små) og ikke andet, så er det nemmere at tjekke på hvad du vil tillade i stedet for hvad du ikke vil tillade.
Du kan bruge dette:
<?php
$ord = "Hej med dig!";
if(eregi("^[^a-z]+$", $ord)) { print "Den går ikke!"; }
Der kan være ret dramatiske forskelle, hvorfor php.net gang på gang understreger det under POSIX-funktionerne - og i stedet anbefaler brugen af Perl-expressions :)
- og det er ikke så meget spørgsmålet om, hvad det betyder i dette enkelte eksempel. PHP'ere skriver _meget_ ofte elendig performende kode, hvilket tydeligt mærkes på mange webhoteller, hvor mange dårlige koder kører samtidigt under mange domæner.
Hvor ofte ses f.eks. ikke '*' i MySQL-kald - på trods af, det yderst sjældent er alle felter, der er brug for? Hvor ofte ses ikke uindekserede MySQL-tabeller? Hvor ofte ses ikke, at 'LIMIT 1' bliver udeladt i update- og select-kald til MySQL-databaser - når koderen ved, der kun skal hentes én række, eller kun én bruger skal have sin profil opdateret?
Altsammen noget, der er med til at gøre mange webhoteller voldsomt meget hårdere belastet end nødvendigt. Kun, hvis man tænker over, hvordan hver eneste linje performer, kan man skrive velfungerende applikationer, der ikke gør livet surt for en selv, ens brugere - og ikke mindst andre på webhotellet og deres brugere.
Kun, hvis man tænker over, hvordan hver eneste linje performer, kan man tillade sig at kalde sig en seriøs koder :)
Synes godt om
Slettet bruger
11. februar 2006 - 16:36#9
jeg kan ikke få den til at virke
Du kan bruge dette:
<?php
$ord = "Hej med dig!";
if(eregi("^[^a-z]+$", $ord)) { print "Den går ikke!"; }
?>
ligegyldigt hvad jeg sætter $ord lig med sætter den aldrig fejlmeddelsen ind
jeg har brug en funktion der godkender or uden mellemrum og uden mærkelige tegn altså godkender a-z og faktisk ikke andet end a-z
Synes godt om
Slettet bruger
11. februar 2006 - 16:39#10
olebole >> Sund og fornuftig argumentation. Jeg bøjer mig i støvet.
simonhans >> Det er fordi jeg er et fjols. :)
Brug dette i stedet:
eregi("[^a-z]+", $ord);
Synes godt om
Slettet bruger
11. februar 2006 - 16:42#11
Eller så endnu bedre:
<?php
if(preg_match('([^a-z]+)', $ord)) { print "Den går ikke!"; }
Arh, okay i var stadig meget aktive....en over næsen til mig selv og ud af spørgsmålet jeg trækker mig :)
Mvh. Johan
Synes godt om
Slettet bruger
11. februar 2006 - 17:39#22
Svar.
Synes godt om
Ny brugerNybegynder
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.