Gå til innhold

preg_match() hvordan fungerer den?


Anbefalte innlegg

Kan noen forkare meg hvordan preg_match() funker evt. gi meg en god guide på det. Har søkt litt men skjønner ikke helt systemet i det folk skriver.

 

F.eks:

preg_match('@^(?:http://)?([^/]+)@i',
  "http://www.php.net/index.html", $matches);
$host = $matches[1];

Hvorfor er alle disse rare tegnene der?

Hva er $matches til?

Hvordan lager man et script som kun tillater variabler med a-z og 0-9?

Lenke til kommentar
Videoannonse
Annonse

preg_match bruker regular expressions til å sjekke formatet på strings. Les mer om regular expressions blant annet her og her.

 

For å sjekke at en variabel kun inneholder a-z og 0-9 er vel det greieste å bruke ereg, noe a la dette:

if (ereg("^[a-z0-9]+$",$string) { ....

Tar forbehold om feil her ;)

 

Regular expressions kan være vanskelige å forstå, selv synes jeg det ser ut som en mølje fremdeles, men det kan være veldig nyttig også.

 

edit: Og når du lurer på en funksjon i php er det som regel nyttig å slå opp i php-maualen: http://no.php.net/preg_match

Endret av anners
Lenke til kommentar

ereg() funksjonene er ikke annbefalt da perl regXPn er raskere. dvs preg funksjonene.

uansett

manualen er vår venn:

 

Perl regXP:

http://no.php.net/manual/en/reference.pcre...tern.syntax.php

 

Pattern modifiers (Som f.eks i en på eksemplet over som betyr case-insensitiv)

http://no.php.net/manual/en/reference.pcre...n.modifiers.php

 

RegXp er veldig "treg" måte å søke i en string på og burde utelukkende _kun_ benyttes når det er nødvendig, dvs avanserte søk som validering av e.post, om en streng har en viss struktur etc.

 

For sjekking om en variabel er en integer, en string eller om den består kun av bokstaver/tall samt enkel replace har vi egne funksjoner for.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...