Foros del Web » Programando para Internet » PHP »

link en codigo fuente

Estas en el tema de link en codigo fuente en el foro de PHP en Foros del Web. 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.   *  ...
  #1 (permalink)  
Antiguo 05/06/2011, 07:02
Avatar de ceanr  
Fecha de Ingreso: noviembre-2009
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 0
link en codigo fuente

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 ($chCURLOPT_URL$url); 
        
curl_setopt ($chCURL_HEADERFALSE); 
        
curl_setopt ($chCURLOPT_RETURNTRANSFERTRUE); 
        
$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_AMIGAENLACE)) { 
    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
  #2 (permalink)  
Antiguo 05/06/2011, 09:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: link en codigo fuente

Lo mejor es usar DOM o SimpleXML con xpath te va a ir de maravilla y vas a ver que no pasarás casi nada de trabajo. Trátalo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: link, fuentes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:16.