Ayer estuve trabajando en un Script para validar los enlaces recíprocos del directorio de redribera. Lo cierto es que esta es una utilidad que por defecto viene implementada en la mayoría de scripts comerciales de directorios, como phpLD o k-Links. Sin embargo el directorio de redribera es un directorio de creación propia, y la funcionalidad del mismo va cambiando según los requerimientos de mantenimiento del mismo. Esto es una ventaja porque lo hace muy flexible a las necesidades que me surgen para su correcta administración. Sin embrago plantea el problema de la programación del mismo, con lo que son necesarios conocimientos de programación.

dirparcial

Originalmente el directorio captaba las solicitudes de envio de enlaces al directorio mediante la utilización del formulario de solicitud de enlaces (A la derecha se puede ver una muestra parcial, donde esta remarcado el campo para indicar la URL del link recíproco).

Esta información se suministra por un solicitante y se guarda en una base de datos, donde después un editor (yo mismo), la revisa para proceder a su aprobación o no.

Como muchos directorios, el directorio redribera hace tiempo comenzó a exigir un enlace recíproco para validar una solicitud. Es lo mínimo exigible para compensar el esfuerzo de edición de solicitudes y la inclusión en un directorio ya consolidado.

Sin embargo el contenido de este campo del formulario no era validado de ninguna forma automática, sino tras la revisión humana por un editor.

A dia de hoy el número de solicitudes que soporta el directorio es bastante elevado, aunque la gran mayoría de ellas o bien no indican una URL donde se encuentra el enlace recíproco, o bien en la URL indicada no existe nada, debiendo perder un tiempo considerable en realizar la validación por parte del editor.

Así que he empleado algún tiempo en desarrollar una función php que me permita validar la existencia de un determinado texto en una URL dada (cualquiera).

<?php

function validaLinkReciproco($feedUrl,$searchString){
/* Se utiliza para validar el enlace reciproco.
Quien utilice este script, probablemente por un include
Devuelve: true (cadena encontrada), false (cadena no encontrada) */

//Primero verificamos si curl está instalado en el servidor web.
$curlInstalled = true;

if(!extension_loaded(‘curl’)) {
if (strtoupper(substr(PHP_OS, 0, 3)) === ‘WIN’) {
if (!dl(‘php_curl.dll’)) { // Attempt to load the extension for Windows systems
$curlInstalled = false;
} else {
$curlInstalled = true;
}
} else {
if (!dl(‘curl.so’)) { // Attempt to load the extension for POSIX systems
$curlInstalled = false;
} else {
$curlInstalled = true;
}
}
}

//En funcion de si está instalado curl, obtenemos los datos de una u otra forma
if ($curlInstalled==true) {
//Recuperamos los datos de curl
$ohyeah = curl_init();
curl_setopt($ohyeah, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ohyeah, CURLOPT_URL, $feedUrl);
$err = curl_error($ohyeah);
$pagedata = curl_exec($ohyeah);
curl_close($ohyeah);
} else {
$pagedata = file_get_contents($feedUrl);
}

//Buscamos la cadena en el string
$pos = strpos($pagedata,$searchString);

if($pos === false) {
//Cadena $searchString no encontrada en $feedUrl
return false;
}
else {
//Cadena $searchString encontrada en $feedUrl
return true;
}
}
?>;

Se trata de una función que evidentemente debe ser utilizada en el apartado en que validemos los datos enviados por el formulario, donde $feedURL, debiera contener la URL donde deseamos buscar (en nuestro caso la otorgada por el campo URL del enlace recíprocomira la imagen mas arriba). La función devuelve el valor true o false, en función de que se encuentre la cadena de busqueda en el texto html de la página indicada por $feedURL.

Esta función es una función genérica, es decir no busca la existencia de un enlace recíproco en una URL, sino de cualquier texto, por tanto se puede reutilizar para multitud de usos que un webmaster quiera darle.

En nuestro caso, tan solo buscamos la existencia del texto de la web enlazar, por ejemplo $searchString = “dominio.com” , sin embargo se pueden forzar las busquedas mucho mas, para validar etiquetas enteras y asegurarnos por ejemplo que el solicitante enlaza nuestra web con el texto exacto que suministramos, evitando así sorpresas como enlaces con nofollow, etc….

En mi caso, esta sencilla incorporación al directorio me evita revisar una serie de solicitudes que no cumplen con la política de inclusión en el directorio de redribera. Por supuesto hecha la ley, hecha la trampa, pero eso lo dejamos para otro post….

Espero que os pueda ser de utilidad como a mi me lo ha sido.

Un saludo.

Compartelo
Compartelo:barrapuntomeneamewebeamefresquifavoritingBlogMemesChidoEnchilameMr.Wongdel.icio.usBlinklisttechnoratidigggoogle_bmarks


5 respuestas en “Buscar texto en URL con php.”


  1. Por Xaviclave:

    Muy bién hay que automatizar las cosas y que vayan solas.

  2. Por julio:

    Estamos en el right way !
    Un Saludo Xavi!

  3. Por santris:

    Justo lo que andaba buscando!!
    Saludos,

  4. Por Luís Encuentra Agüera:

    Sres.:
    Quisiera saber, por favor, cómo puedo contactar con la persona que está al frente de: juntadeandalucia.es/cultura/web/publico/general.jsp?.
    bién por email o teléfono.
    Gracias, saludos y buenas atrdes. LUís.-

  5. Por recuperar archivos eliminados:

    sí…así es, automatizar todo lo que podamos

Deja un comentario.

Buscar...

somos sociales...

Ultimas Respuestas

  • Ernesto: nueva lista de directorios gratuitos http://www.espdirectorio.es/di rectorios-gratis.html


  • Antire: Muy interesante… yo estoy haciendo un juego acción rpg. y no sabia que herramienta usar para los...


  • UE: ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ...


  • luis: eyyyy me gusto!!


  • marisol: :razz: :lol: :grin: :evil: :cry: :cry: :shock: :sad: :roll: :?: :?: :!:


Algunas de nuestras secciones de juegos...