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";
}
?>
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