sábado, mayo 20, 2006

preg_replace...?

Como ya había comentado en un post anterior me encuentro realizando una página que muestre el pagerank de la página solicitada de manera dinámica (como el pagerank cambia, mostrar una imágen estática no es de gran utilidad). Pues me encontré con el problema de que si uno quiere colocar su pagerank en un foro, ésto resulta imposible en la mayoría de ellos, pues no aceptan que la imagen provenga de código php o simplemente no acetan los caracteres como "?" y "&". Diantres, entonces ésto sólo funciona de manera efectiva para mostrarse en la página web que se requiere?....La respuesta es no. He encontrado que si llamo el script de esta manera: "ejemplo.php?url=www.ejemplo.com", incurro en el problema antes mencionado. Sin embargo, las diagonales "/" no tienen este inconveniente, por lo cual las convierten en el aliado perfecto. De esta manera descubrí (ok, ha de ser algo de conocimiento general, pero para mí fue un hallazgo) que si llamo el script de esta manera: "ejemplo.php/www.ejemplo.com.png", el foro lo toma como una imagen png, en ningún momento es tomado en cuanta como un archivo de php y por ello lo acepta sin ningún problema. La cuestión es que uno creería que "www.ejemplo.com.png" está dentro de la carpeta o directorio "ejemplo.php", pero esto no es cierto, el servidor en el que se encuentra "ejemplo.php" considera a "/www.ejemplo.com.png" como un parámetro!!!. Bueno en ésto basé la nueva manera que implementé en mi código para poder introducir un pagerank dinámico en cualquier foro. CUALQUIERA.

Y bueno para poder pasar la variable "www.ejemplo.com" al script php utilicé el siguiente código:

$page = $_SERVER['PHP_SELF'];
$page = preg_replace('/(.*).php\//i','',$page);
$page = preg_replace('/.png(.*)/i','',$page);

En la primer línea se obtiene el "path" en el que se encuentra el script en ejecución (/user/public_html/ejemplo.php/www.ejemplo.com.png). En la segunda línea quito todo lo que se encuentre antes de ".php/", inclusive, de manera que obtengo únicamente la dirección web que es la variable que deseo más la terminación ".png" (www.ejemplo.com.png). Finalmente en la tercer línea elimino el ".png" y todo lo que pudiera estar después de manera que obtengo la dirección web de la cual le quiero obtener el page rank y ésta variable la introduzco en el script original para obtener la imagen deseada.

Ya hecho ésto ahora voy a iniciar el proceso de hacer un coqueto userbar que se pueda usar como firma en foros, mostrando en la imagen el pagerank y la página de cuyo pagerank estamos hablando.