Verificar sin un Enlace existe

pokmen

VIP
Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
18 Jul 2015
Mensajes
364
Crédito(s)
0
Puntos
129
Hola amig@s,
Espero me puedan ayudarar con lo siguiente:

Supongamos que tengo una lista de enlaces dentro de un div con enlaces, y otro div para ejecutar el javascript:
HTML:
<div id="Links" class="Links">
<a href="">Link 1</a>
<a href="">Link 2</a>
<a href="">Link 3</a>
....
<a href="">Link n</a>
</div>

<div id="buttonCalculate" class="buttonCalculate">Botón Calcular</div>
Quisiera que al dar clic en el botón, este verifique los enlaces para saber si existen o no, en caso de existir que arroje un alert o cambie de color.

Pdt:
Si alguien sabe hacerlo y considera que le debo de pagar para que lo haga, envíenme un privado para crear el tema en la sección de negocios.

Saludos.
 

zahoribello

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
4 Sep 2018
Mensajes
199
Edad
27
Crédito(s)
0
Puntos
180
Hola pokmen, espero te encuentres bien. Sobre tu consulta en PHP existe la función CURL, para saber si existe o no un url. que puede ser implementada de esta manera:
PHP:
        function validar_url($url) 
	{
		if(!filter_var($url, FILTER_VALIDATE_URL) === false)
		{
			$this->_CURL = curl_init($url);
		 
			curl_setopt($this->_CURL, CURLOPT_TIMEOUT, 5);
			curl_setopt($this->_CURL, CURLOPT_CONNECTTIMEOUT, 5);
			curl_setopt($this->_CURL, CURLOPT_NOBODY, true);
			curl_setopt($this->_CURL, CURLOPT_FOLLOWLOCATION, true);
			curl_setopt($this->_CURL, CURLOPT_RETURNTRANSFER, true);
			$result = curl_exec($this->_CURL);
			if($result === false){  
				return array("validar" => false,"type_msj" => "danger","msj" => curl_error($this->_CURL));
			}  
			$httpcode = curl_getinfo($this->_CURL, CURLINFO_HTTP_CODE);
			$content_type = curl_getinfo($this->_CURL, CURLINFO_CONTENT_TYPE);
			curl_close($this->_CURL);

			#$accepted_response = array(200,301,302);
			$accepted_response = array(200);

			if(in_array($httpcode, $accepted_response)) 
			{
				return array("validar" => true,"type_msj" => "success","msj" => "Felicitaciones! url ingresada existe.","row" => $content_type);
			}else 
			{
				return array("validar" => false,"type_msj" => "danger","msj" => "Error! url ingresada no existe.");
			}
		}else
		{
			return array("validar" => false,"type_msj" => "danger","msj" => "Error! url ingresada no es valida.");
		}
	}
Si quieres adaptarlo a Jquey o JavaScript nativo puedes usar ajax, mandas la consultal documento php con ajax y recibes la repuesta del mismo para luego interpretar y direccionar los mensajes que quieres aplicar. Espero te ayude mi respuesta
 

Adrián Freecss

Épsilon
Programador
Verificación en dos pasos desactivada
Desde
27 Ene 2014
Mensajes
925
Crédito(s)
0
Puntos
4
Se usa PHP, como te mencionar, con AJAX.

Insertar CODE, HTML o PHP:
//Código #1
function url_existe($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_1 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) FxiOS/10.4b8288 Mobile/15C153 Safari/604.4.7");
curl_setopt($ch, CURLOPT_REFERER, 'http://facebook.com');
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $retcode != 404 ? true : false;
}
//CODIGO #2
function url_existe($url){
return(bool)preg_match('~HTTP/1\.\d\s+200\s+OK~', @current(get_headers($url)));
}
El truco es leer la cabecera y ver que retorne un valor de 200.
 

Arriba