Funciones para diferentes personas
Esto son funciones para las diferentes personas que existen en este mundo...
Programador Newbie
function tmCffTmAIw(){ // mucho codigo copiado de origen desconocido y baja calidad.. }
Empleado de Microsoft
function showMeTheMoney(){ return $Precio_nuevo_producto * 999 + $iva * 2 }
Fundamentalista..
function AllahAkbar(){ echo "Boom…." }
Pastor en el campo..
function *********_tu_madre***********_if_i********(){}
Director
function hacerMiTrabajo(){ DarMiTrabajoAotro(); irAcomer(); }
Politico
function DecirQue(){ DecirAlgoEstupido(); Cobrar(); DecirAlgoEstupido(); Cobrar(); Cobrar(); Dormir(); DecirQue(); }
Tutorial Simple RSS 2.0
Empezamos con la base de datos. De ahí es de donde sacaremos el contenido que mostraremos en nuestro rss. Supongamos que tenemos una simple db creada:
database: rss_test
tabla: rss
campo: id | int | primary_key | auto_increment
campo: title | varchar(60)
campo: text | text
campo: date | int(11) // nota: se usa la función "time()" de php.
campo: author | varchar(60)
campo: description | text
Una simple base de datos con 6 campos, simple verdad ?
Si nos vamos a la wikipedia veremos la estructura de un RSS.
Repasemos los mas importantes.
<rss version="2.0"> </rss>
Supongo que esa es fácil.... define la versión del rss.
<channel> </channel>
Esto abre un nuevo canal, digamos que tenemos varias categorías de noticias, obviamente no vamos a crear un rss por cada una de ellas o no ?.. entonces lo que haremos seria simplemente poner en un channel una categoría en otro otra etc etc.
<title> </title>
Esto seria el titulo del canal. En los documentos rss algunos tags son liantes porque se repiten pero dependiendo de la posición hacen una o otra función. Este tag también se utiliza para definir el titulo de una noticia.
<link> </link>
Igual que title este tag se utiliza en diferentes sitios y ejerce diferentes funciones. En caso de situarlo después de channel y antes de item (que explicare mas tarde) hará de enlace hacia la categoría donde están las noticias.
<description></description>
Igual que los anteriores depende de donde este puesto hace diferentes funciones. En este caso si se pone después del channel y antes de item servirá como descripción del canal.
<pubDate></pubDate>
Esto seria la fecha y la hora mas la localización. Utiliza el formato DATE_RFC2822. Un ejemplo de como seria la fecha: Fri, 04 Sep 2009 14:49:27 +0200.
<ttl></ttl>
Tiempo de actualización. Digamos que yo visito tu pagina y veo que el ttl es 30. Esto significa que supuesta mente en 30 minutos no vas a actualizar tu rss por lo tanto en 30 minutos no volveré a entrar. Muy útil para algunos lectores de RSS.
<item></item>
Esto es simple. Una entrada dentro de un canal. Suele llevar las etiquetas: title,link,description y pubdate.
Repasado lo mas importante vamos a crear el php. En nuestro caso no utilizaremos ningún xml o bibliotecas. Digamos que sera puro sql + php.
Lo primero que hay que hacer obviamente es definir las variables principales que vamos a utilizar.
<?php // usuario de la base de datos $db_user = "bill_gates"; // contraseña del usuario $db_pass = "linux_sucks"; // servidor de la base de datos $db_host = "localhost"; // nombre de la base de datos $db_name = "rss_test"; // limite máximo $max_limit = 10; // limite predefinido $limit = 5; ?>
db_user seria el usuario con el que nos conectaremos a la base de datos.
db_pass seria la contraseña del usuario de la base de datos.
db_host seria el host (por lo tanto servidor) donde esta alojada la base de datos.
db_name seria el nombre de la base de datos.
max_limit Esta variable hará de filtro y no permitirá que se muestren # noticias. Básicamente así nos ahorramos problemas después y salvamos tiempo.
limit Puesto que vamos a darle la oportunidad al visitante de elegir un numero de noticias que se vayan a mostrar este seria el limite predefinido.
Teniendo las variables declaradas vamos a crear el filtro de numero de noticias.
if (isset($_GET["limit"]) && $_GET["limit"] <= $max_limit) {$limit = (int)$_GET["limit"];}
Con este "simple" código comprobamos si la variable(por url) ha sido definida por el visitante y si esta sobrepasa el limite máximo. En caso de ser definida y no sobre pasar el limite sera aplicada.. en caso de que si sobrepasa el limite sera aplicada la de por defecto.
seguimos... ahora vamos a conectar con la base de datos.
// conexión a la base de datos $connect = @mysql_connect ($db_host,$db_user,$db_pass) or die(mysql_error()); // seleccion de la base de datos mysql_select_db($db_name,$connect) or die(mysql_error());
Bastante simple. Se conecta con los datos indicados arriba y en caso de ocurrir algún error lo muestra.
Vamos a hacer la consulta a la base de datos.
$monkey = mysql_query("SELECT id,title,description,date FROM rss ORDER BY id DESC LIMIT 0,".$limit);
Que hacemos: Cogemos los campos los ordenamos por orden de descenso (desde la ultima a la primera) y ponemos el limite. Nos tocan las primeras lineas de nuestro rss:
$rss = '<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"> <channel> <title>Mi super mega chulo RSS 2.0</title> <link>http://www.misupermegachulapagina.com</link> <description>Este es mi super mega chulo RSS 2.0</description> <pubDate>'.date(DATE_RFC2822).'</pubDate> <ttl>30</ttl> ';
Que hacemos ? Guardamos en una variable ($rss) el header del rss. Como podéis ver están los tags mas importantes (title,link,description,pubdate y ttl). Ahora vamos a recoger los datos que hemos sacado de la base de datos y vamos a ordenarlos.
// imprimir resultado
while ($row = mysql_fetch_assoc($monkey))
{
$rss .= " <item> \n";
$rss .= " <title>".$row['title']."</title> \n";
$rss .= " <link> http://www.misupermegachulapagina.com/noticias.php?id=".$row['id']."</link> \n";
$rss .= " <description>".$row['description']."</description> \n";
$rss .= " <pubDate>".date(DATE_RFC2822,$row['date'])."</pubDate> \n";
$rss .= " </item>\n";
}
Como antes creamos una nueva sección recogemos el titulo, el enlace hacia la pagina de la entrada, la descripción y la fecha de publicación. Todo esto se sigue guardando el la variable rss.
Por ultimo si no vamos a crear un nuevo canal (el titulo dice simple ¬¬) podemos cerrar tanto el canal como el rss.
$rss .= "</channel> \n</rss>";
y imprimir el resultado.
print $rss; ?>
con esto tendríamos algo asi:



Salud
WTF ?
<?php
$rand = rand(0,4);
if ($rand > 3)
{ echo "The people are monkeys o.O "; }
else
{ echo "The people are chickens -.- "; }
?>



