login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Reguliere expressies > URL controle

URL controle

Auteur: Thomas - 26 augustus 2004 - 15:34 - Gekeurd door: Dennisvb - Hits: 8375 - Aantal punten: 4.44 (8 stemmen)





Deze functie controleert of een URL wel geldig is. Zoja, returneert hij TRUE.

Code:
  1. <?php
  2. function control_url($in) {
  3. // oude versie
  4. /*
  5.   $start_url = "(http(s)?\:\/\/)?"; // start URL
  6.   $punten = "([\w_-]{2,}\.)+"; // een of meer delen met een . aan het einde
  7.   $laatste_deel = "([\w_-]{2,})"; // laatste deel bevat geen punt
  8.   $user = "((\/)(\~)[\w_-]+)?((\/)[\w_-]+)*"; // evt subdirectories - evt met user ~
  9.   $eind = "((\/)|(\/)[\w_-]+\.[\w]{2,})?"; // evt eindigend op een slash of slash+file+extensie
  10.   $qstring1 = "((\?[\w_-]+\=([^\#]+)){0,1}"; // querystring - eerste argument (?a=b)
  11.   $qstring2 = "(\&[\w_-]+\=([^\#]+))*)?"; // querystring - volgende argumenten (&c=d)
  12.   $bkmrk = "(#[\w_-]+)?"; // bookmark
  13.  
  14.   $exp = "/^".$start_url.$punten.$laatste_deel.$user.$eind.$qstring1.$qstring2.$bkmrk."$/i";
  15.   */
  16.  
  17. // nieuwe(re) versie
  18. // NB: het is beter om de ? aan het einde van de volgende regel weg te laten
  19. // om er zeker(der) van te zijn dat je met een URL te maken hebt
  20. $start = "(http(s)?:\/\/)?"; // http://
  21. $url = "([\w_-]+)(\.[\w_-]+)*"; // www.bla.com
  22. $user = "(\/\~[\w_-]+)?"; // userdir
  23. $eind = "(\/[^\040\t\r\n\.\?]+(\.[^\040\t\r\n\.\?]+)*)*(\/)?"; // files en folders
  24. $qstring = "(\?[\w_-]+\=([^\#\040\t\r\n]+)(\&[\w_-]=[^\#\040\t\r\n]+)*)?"; // querystring
  25. $bkmrk = "(#[\w_-]+)?"; // bookmark
  26.  
  27. $exp = "/^".$start.$url.$user.$eind.$qstring.$bkmrk."$/i";
  28. return preg_match($exp, $in);
  29. }
  30. ?>


En zo kan je hem gebruiken:

  1. <?php
  2. if (control_url("http://www.sitemasters.be")) {
  3. echo "De URL is correct!\n";
  4. }
  5. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (8)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.028s