TAGS

Un poco de publicidad:

Saber país del visitante sin GeoIP, con PHP

ESCRITO POR Josep Viciana EL 19-08-2008 - EN LA CATEGORÍA PHP, Programación.

Hay varias maneras de saber de donde es un visitante a una página, la más simple seguramente sea preguntandole, como en muchas páginas como las de EA Games, Sony, Asus… pero también existen otras formas para hacer esto transparente al usuario, seguramente la vía más conocida sea utilizando GeoIP, pero si no necesitamos tanta "precisión" - con GeoIP se puede saber incluso la ciudad - y nos conformamos con saber el país, podemos utilizar una variable del servidor de PHP, que recoge información del navegador, de manera que es gratis - GeoIP es de pago - y más rápido.

La variable es esta:

$_SERVER["HTTP_ACCEPT_LANGUAGE"]

Y puede contener algo como: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3

Los 5 primeros caracteres que he subrayado, dicen el idioma y la zona, en este ejemplo sería español de España, si fuese es-mx sería español de Méjico.

Entonces, para saber de donde es y en que idioma mostrar la página podemos hacer esto:

$lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,5);

Y ya podemos trabajar como queramos con ese dato.

Lista de países:
es-es - España
es-mx - Méjico
es-ar - Argentina
es-cl - Chile
es-ve - Venezuela
pt-br - Brasil
es-co - Colombia
es-ec - Ecuador
es-uy - Uruguay



Descargar videos de Youtube con PHP

ESCRITO POR Josep Viciana EL 16-08-2008 - EN LA CATEGORÍA PHP, Programación.

Esta es una clase para descargar videos de Youtube, con la que podemos obtener un enlace al archivo de video, que se baja con el nombre get_video, sin ninguna extensión, por esto, dependiendo de que sistema operativo o que configuración tengamos, habrá que cambiarle el nombre y ponerle una extensión para poder verlo.

Se descarga sin extensión pero no sin formato, el formato es application/x-flash-video, es decir, la extensión que le corresponde es .FLV.

VER EJEMPLO / VIEW SAMPLE

VER CÓDIGO DEL EJEMPLO / VIEW SAMPLE CODE

Lo primero que hay que hacer es poner la clase, que podemos utilizar desde el mismo script o con un include desde otro archivo.

Clase para obtejer videos de Youtube:

class YouTubeParser {
var $_urlOut = 'http://www.youtube.com/get_video?video_id=%s&t=%s';
var $errMsg = ”;
function getVideoLink($url){
$hash = ”;
if (!preg_match('/(\?|&)v=([0-9a-z_]+)(&|$)/si', $url, $m)) {
$this->errMsg = 'URL no válida';
return false;
}
$v = $m[2];
if (!($response = file_get_contents($url))) {
$this->errMsg = 'Imposible leer la p&aagina de Youtube';
return false;
}
if (preg_match('/var swfArgs( *)=( *)\{(.*?)\}/si', $response, $m)) {
if (preg_match('/"t"( *):( *)"(.*?)"/si', $m[3], $mm)) {
$hash = $mm[3];
}
}
if (empty($hash)) {
$this->errMsg = 'Imposible conseguir el enlace';
return false;
}
return sprintf($this->_urlOut, $v, $hash);
}
}

Y para ejecutar, podemos recibir la variable URL por POST, y utilizar así la clase:

if (isset($_POST['url'])) {
$parser = new YouTubeParser();
$url = trim(stripslashes($_POST['url']));
if (!($link = $parser->getVideoLink($url))) {
echo $parser->errMsg;
} else {
echo '<a href="' . $link . '">Descargar video</a>';
}
echo '<br /><br />';
}

No es en absoluto una clase dificil de utilizar, pero si a alguien le surge alguna duda o problema intentaré ayudar a que se entienda mejor el buen uso que se le puede dar.



Eliminar palabras malsonantes con PHP.

ESCRITO POR Josep Viciana EL 13-08-2008 - EN LA CATEGORÍA PHP, Programación.

En sitios como foros, blogs o cualquier tipo de Web donde cualquiera pueda escribir comentarios, es común que se tenga la necesidad de evitar que la gente escriba según que palabras, como insultos.

Para esto he hecho una pequeña función que facilita la tarea, es realmente muy simple es poco más que un bucle que se repite buscando cada una de las palabras de una lista predefinida, y que si encuentra alguna, la elimina.

La función:

function epm($cadena){
$palabras = 'sex, kill, drugs, fuck';
$palabra = explode(', ',$palabras);
$palabras = count($palabra);
$base = 0;
while($base<$palabras){
$cadena = str_ireplace($palabra[$base],'***',$cadena);
$base++;
}
return $cadena;
}

Como se puede ver, la lista de palabras que se eliminan están en la variable $palabras, separadas por comas. Para añadir o eliminar palabras de la lista, sólo hay que tener en cuenta este patrón: "palabra, palabra, palabra, etc."

Hay que notar que utiliza la función str_ireplace, si ponemos esa i delante de replace, no tendrá en cuenta las mayúsculas, y en este caso es algo importante para eliminar tanto Sex, como SEX o sex.

Ejemplos de uso:

echo epm('I want a lots of drugs.'); // I want a lots of ***.

O bien…

$cadena='I will kill you';
$cadena = epm($cadena);
echo $cadena; //I will *** you



Eliminar caracteres raros de una cadena con PHP

ESCRITO POR Josep Viciana EL 30-07-2008 - EN LA CATEGORÍA Cursos y tutoriales, PHP, Programación.

Esta función es casi elemental cuando se trabaja con formularios en PHP, si no elemental, es importante conocerla.

Bueno esta función mismamente no, por que es una que me he hecho yo mismo pero supongo que habrán cientos similares… en cualquier caso, aquí pongo la mía, para guardarla en algún sitio y poder reutilizarla cuando la necesite, y ya de paso quizá ayudar a alguien :)



Comprobar estado de un servidor mediante PHP

ESCRITO POR Josep Viciana EL 29-07-2008 - EN LA CATEGORÍA PHP, Programación.

Quienes gestionen varias páginas en diferentes servidores, pueden necesitar hacer un pequeño test a los servidores cada poco tiempo para comprobar que están funcionando correctamente, o almenos que están funcionando, una opción es visitar las páginas, evidentemente, pero cuando el número de servidores crece no es en absoluto práctico, de manera que muchas veces resulta casi obligado buscar alternativas, o en este caso fabricarla uno mismo.



I ens ha tocat aquesta nit companys lluitar,
Trencar silencis imposats per poder respirar,
I haurem d´encendre amb torxes la terra del nostre cor,
I així per sempre vèncer la negror.

Algunos derechos reservados. Josep Viciana. 08-09-2008.