Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Du skal ikke bruge ereg, den er ved at dø... if (preg_match('[^0]', $nummer)) { echo "Starter med 0"; } elseif (preg_match('[^94]', $nummer)) { echo "Starter med 94"; } else { echo "Starter ikke med 0 eller 94"; }
Gå over til at brug de meget bedre preg-funktioner:
if (preg_match("/^0\d*/", $nummer)) echo "ske noget"; else if (preg_match("/^94\d*/", $nummer)) echo "ske noget andet"; else echo "ske noget helt tredje";
Synes godt om
Slettet bruger
31. juli 2006 - 19:39#3
Det er forkert at sætte ' omkring et nummer, da det er interger. Men du kan da bare $numb = substr($nummer, 0, 2); if($numb == 0) { //......... } elseif($numb == 94) { //......... } else { //fejl ect. }
nej er den ved at dø??? det var da ikke så godt! nåmen så prøver jeg lige preg'en - hvorfor er der lige den der forskel i jeres syntax? - altså det der d - hvad gør det?
Imidlertid tillader den at der står noget andet end kun cifre efter starten:
"00 hmm det er ikke krævet at der er tale om et tal"
Dette har egentlig ikke nogen betydning, hvis du på forhånd er sikker på at der kun står tal.
I øvrigt var mit forlag heller ikke uden smuthuller. Burde se sådan her ud:
if (preg_match("/^0\d*$/", $nummer)) echo "ske noget"; else if (preg_match("/^94\d*$/", $nummer)) echo "ske noget andet"; else echo "ske noget helt tredje";
Synes godt om
Slettet bruger
31. juli 2006 - 20:09#11
Hvad står de forskellige ting for, kender du en side hvor man kan se de der regular expression? / er bare for at udkommentere ^ så det ikke laver fejl ikke? ^ Betyder start? 94 er tallet \d cifre siger du * = et eller andet bagefter? $ = ? / igen bare for at udkommentere ikke?
/.../ skal med fordi sådan er syntaksen nu engang. Det har intet med ^-tegnet at gøre. Syntaksen er iøvrig inspireret af perl. En af grundene til at de skal være der er bl.a. at man kan skrive noget efter dem - f.eks. i hvis man vil have sin regexp til at behandle store og små bogstaver ens:
"/.../i"
Det er faktisk det samme i som i din eregi(). :^)
^ - er et "anker", og det betyder "starten af linjen". Uden dette, f.eks. med:
preg_match("/0\d*$/", $nummer)
- ville den bare matche noget hvor at der vare et 0 et eller andet sted (også hvis det er i starten).
\d - betyder ciffer. En anden måde at skrive det samme på ville være 0-9, men så er\d no lidt mere kompakt.
* - betyder som sagt "0 eller flere". Der er andre muligheder, f.eks. den mest almindelige:
+ - som betyder "1 eller flere".
$ - er den modsatte af ^. Dette "anker" matcher med slutningen af strengen.
Mønsteret:
"/^94\d*$/"
- skal derfor læses:
"Starten af strengen, derefter 9, derefter 4, derefter 0 eller flere ciffre, og tilsidst slutningen af strengen."
Kender ingen danske sider, men her er der f.eks. en rigtig god en (desværre er indlæringskurven på regexp'er lidt stejl når man møder dem for første gang):
jeg arbejder med 2 typer numre for samme ting (de har været så smarte bare at skifte numre uden at tænke på at der er konsekvenser... og de gamle numre eksisterer altså sideløbende med de nye til de er udfaset...)
det nye ser sådan ud 9401 06 0021 og det gamle sådan 001 06 002
det første (3 cifre) er typen, så årstallet og så et løbenr.
så er det sådan at jeg skal hente alle af samme type i databasen - 9401 er altså samme type 001 fordi begge ender på 01.
hvordan skal regexp. så se ud? i databasen er det bare et langt nummer uden mellemrum...
kan i hjælpe med det også??? på forhånd 1000000 tak - og smid bare om jer med svar ;-)
hej igen nå ja det er selvfølgelig i mysql'en. du kan vel ikke liiige hjælpe med hvordan den checker om hhv. 3. og 4. tal eller 2. og 3. tal fx er 01? jeg kan jo ikke checke bagfra da der kommer flere tal derefter...
hov du må hellere få points - du har været utroligt god til at hjælp!!! Så der er ikke noget krav om at svare på det sidste... det var bare en tillægsting... ;-) men hvis nogen svarer bliver jeg da glad :-)
det ser fornuftigt ud! jeg afprøver lige! 1000 tak for hjælpen!
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.