← Desenvolvimento

Validar URL!!

Lida 2230 vezes

Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Estou a aprender uns novos truques em php, por isso criei este codigo que serve para validar URL.

Código: [Seleccione]

<?
$site = $_GET['site'];
if(!isset($site) || empty($site)) {
exit("Insira a url que deseja verificar!!"); }
if(preg_match("/^(http:\/\/|https:\/\/)[wW]{3}\.[a-zA-Z0-9_\.\-]+\.[a-zA-Z]+/i", $site, $sim)):
echo("A url \"$site\" é valida!!");
elseif(!preg_match("/^(http:\/\/|https:\/\/)[wW]{3}\.[a-zA-Z0-9_\.\-]+\.[a-zA-Z]+/i", $site, $sim)):
echo("A url \"$site\" é invalida!!");
else:
exit("Aconteceu um erro qualquer!!");
endif;
?>


Exemplo:
http://www.madenet.info/url.php?site=http://www.mais-trafego.info

Espero que seje util!!

Cumps
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

N funfa mto bem...

A url "http://www.mais-trafegeppp.f" é valida!!
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

A url é valida, não quer dizer que o site é valido  :wink:

O codigo não verifica o dominio nem o site, simplemesnte verifica se a url tem tudo que uma url precisa para ser considerada valida.

 :wink:
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

mas devia verificar a tld..
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Calma ja te mostro o novo codigo  :wink:
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Este codigo está simplesmente excelente!!

Código: [Seleccione]

<?
$site = $_GET['site'];
if(!isset($site) || empty($site)) {
exit("Insira a url que deseja verificar!!"); }
$dominios = array('pt', 'com', 'net', 'biz', 'org', 'info', 'de', 'nl', 'lu', 'tw', 'ws', 'nz', 'ao', 'mn', 'tk', 'uk', 'com.br', 'co.za', 'co.uk', 'ar', 'mk', 'us', 'ca', 'gr', 'tr', 'fm', 'tv', 'edu', 'gov');
$URL = preg_split("/^(http:\/\/|https:\/\/)(w|W){3}\.[a-zA-Z0-9_\.\-]+\./i", $site);
if(array_search($URL[1], $dominios) == TRUE) {
foreach($dominios as $dominio) {
if(preg_match("/^(http:\/\/|https:\/\/)[wW]{3}\.[a-zA-Z0-9_\.\-]+\.[$dominio]/i", $site)) {
$dom = $dominio;
echo("A url \"$site\" é valida!!<br><br>");
$uri = preg_split("/^(http:\/\/|https:\/\/)/i", $site);
foreach($uri as $url) {
$opcoes = array("URL" => "$url", "PORTA" => "80", "TIMEOUT" => "30"); }
$GET = '/';
$fp = fsockopen($opcoes['URL'], $opcoes['PORTA'], $errno, $errstr, $opcoes['TIMEOUT']);
if (!$fp) { die("Mas o website \"$site\" não existe!!<br>\n"); }
$out  = "GET $GET HTTP/1.1\r\n";
$out .= "Host: ".$opcoes['URL']."\r\n";
$out .= "User-Agent: URL CHECK BY KINGLESS\r\n";
$out .= "Connection: Close\r\n\r\n";
fputs($fp, $out); fclose($fp);
echo("E o website \"$site\" existe!!"); break;
} } } else {
foreach($dominios as $dominio) {
if(!preg_match("/^(http:\/\/|https:\/\/)[wW]{3}\.[a-zA-Z0-9_\.]+\.[$dominio]/i", $site)) {
echo("A url \"$site\" é invalida!!"); break;}
} }
?>


Eu até admiro o que sou capaz de fazer...  :)

Exemplo:
http://www.madenet.info/url.php?site=http://www.mais-trafego.info

:D :wink:
Offline

Bruno Mota 
Membro
Mensagens 1733 Gostos 3
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

falta os .eu
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

LOL... Faltam muitos dominios... eu apenas coloquei alguns, quem quiser adiciona mais...

 :wink:
Offline

tbk22 
Membro
Mensagens 1268 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

BOm script!!