Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak sprawdzić adres url
Forum PHP.pl > Forum > PHP
waldemi
Jak przy użyciu wyrażeń regularnych sprawdzić czy podany ciąg znaków jest adresem URL tzn. zawiera na początku "http://" ? Próbuję juz drugi dzień i nie mogę tego zrobić. Pomoże ktoś?
Cysiaczek
  1. <?php
  2. $regExp="^http://"; // znajduje tylko poczatek - resztę sobie dopisz, albo poszukaj gotowca - jest pełno ;]
  3. ?>


Pozdrawiam.
franki01
  1. <?php
  2. $check = "(^http://(www.)?(a-zA-Z0-9-).[a-z]{2,4}/)";
  3. if(preg_match($check, $sprawdzana_zmienna)) {
  4. echo "OK";
  5. }
  6. else {
  7. echo "Zle";
  8. }
  9. ?>


Chyba wystarczy sprawdzic poczatek urla, jak chcesz to dobuduj sobie dalsza czesc smile.gif
bełdzio
kosmos.com.pl nie złepie

wlep na google url + regexp i będziesz miał sporo do wyboru
franki01
$check = "(^http://(www\.)?[a-zA-Z0-9-]+[a-zA-Z0-9-\.]*\.[a-z]{2,4}/)";

Zmiana ;]
waldemi
Mam taki kod
  1. <?php
  2. $check = "(^http://(www.)?[a-zA-Z0-9-]+[a-zA-Z0-9-.]*.[a-z]{2,4}/)";
  3. if(preg_match($check, $url)) {
  4. echo "OK";
  5. } else {
  6. echo "Zle";
  7. }
  8. ?>

ale niestety nie działa. Zarówno przy wpisywaniu www.onet.pl jak i przy http://www.onet.pl zawsze pokazuje się komunikat "Złe". Gdzie może być błąd?
markac
  1. <?php
  2. function IsUrl( $url )
  3. {
  4.  if ( !( $parts = @parse_url( $url ) ) )
  5. return false;
  6.  else {
  7.  if ( $parts['scheme'] != "http" && $parts['scheme'] != "https" && $parts['scheme'] != "ftp" && $parts['scheme'] != "gopher" )
  8. return false;
  9.  else if ( !eregi( "^[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,3}$", $parts['host'], $regs ) )
  10. return false;
  11.  else if ( !eregi( "^([0-9a-z-]|[_])*$", $parts['user'], $regs ) )
  12. return false;
  13.  else if ( !eregi( "^([0-9a-z-]|[_])*$", $parts['pass'], $regs ) )
  14. return false;
  15.  else if ( !eregi( "^[0-9a-z/_.@~-]*$", $parts['path'], $regs ) )
  16. return false;
  17.  else if ( !eregi( "^[0-9a-z?&=#,]*$", $parts['query'], $regs ) )
  18. return false;
  19.  }
  20.  return true;
  21. }
  22. ?>
Cezar708
a ja zaproponuję inne podejście, po prostu sprawdź czy coś pod URLem istnieje tongue.gif może to pomoże i się przyda smile.gif

  1. <?php
  2. $arr = get_headers($url);
  3. if ( $arr[0] == "HTTP/1.1 200 OK") {
  4. echo "url jest dobry i pod nim coś się znajduje"
  5. } else {
  6. echo "podany url jest nieprawidłowy, lub pod nim nic się nie znajduje"
  7. }
  8. ?>
waldemi
Już działa. Zadziałało po zrestartowaniu serwera (ciekawe dlaczego?questionmark.gifquestionmark.gif). Sorry za zamieszanie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.