Verificar sin un Enlace existe

  • Autor Autor pokmen
  • Fecha de inicio Fecha de inicio
pokmen

pokmen

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Binance
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.
 
¿Te sirvió? Únete a la conversación

Con tu cuenta gratis puedes responder, escribirle al autor por mensaje privado y comprar con Saldo retenido: el pago se libera cuando recibes lo acordado.

Toma 30 segundos · vuelves a este tema al terminar
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
 
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.
 
Atrás
Arriba