Código PHP:
<?php
// URL de la pagina a analizar
define ('URL_AMIGA', 'http://www.forosdelweb.com/index.php');
// Enlace a buscar
define ('ENLACE', 'http://www.maestrosdelweb.com/');
// Funciones
/**
* descargar_url:
* @url: URL a recuperar.
*
* Funcion de envoltura que obtiene datos desde una URL, intentando
* diferentes metodos si es necesario.
*
* Valor de retorno: El contenido de la URL, o FALSE si falla.
**/
function descargar_url ($url)
{
// Intentar primero directamente mediante el mecanismo interno de
// PHP de secuencias.
if (ini_get ('allow_url_fopen'))
return @file_get_contents ($url);
// Intentar usando la extension Curl.
if (function_exists ('curl_init')) {
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURL_HEADER, FALSE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$buffer = curl_exec ($ch);
curl_close ($ch);
return $buffer;
}
// Si no se pudo obtener, devolver FALSE
return FALSE;
}
/**
* verificar_enlace:
* @url: URL de la pagina a analizar
* @enlace: URL del enlace a buscar
*
* Verifica si la pagina ubicada en la @url dada contiene un enlace
* (<a href="..">) hacia @enlace.
*
* Valor de retorno: TRUE si se encuentra que la pagina tiene el
* enlace, FALSE de lo contrario.
**/
function verificar_enlace ($url, $enlace)
{
$pagina = descargar_url ($url);
if ($pagina === FALSE) {
echo "No fue posible descargar la página $pagina\n";
return FALSE;
}
// Probar la existencia del enlace mediante una expresion regular
$exp_reg = '/<\\s*a\\s[^>]*href=[\'"]?' .
preg_quote ($enlace, '/') . '[\'"]?.*?>/si';
if (preg_match ($exp_reg, $pagina))
return TRUE;
return FALSE;
}
// Prueba simple..
if (verificar_enlace (URL_AMIGA, ENLACE)) {
echo 'La pagina en ' . URL_AMIGA . ' contiene el enlace ' . ENLACE . "\n";
} else {
echo 'No se encontró un enlace a' . ENLACE . ' en ' . URL_AMIGA . "\n";
}
?>
hola estoy intentando aprender a buscar un link dentro del código fuente de un página para saber si los enlaces recíprocos siguen vigentes.
He encontrado este código en este mismo foro pero me encuentro con el problema que cuando llega a esta linea
preg_quote ($enlace, '/') . '[\'"]?.*?>/si';
lee ?> y cierra el código php y no puedo seguir ejecutando el resto
Como puedo solucionar esto
Gracias por ayudarme