Posted on 24-08-2008
Filed Under (Desarrollo, PHP) by Programlocura

Buenas,

Hoy vamos a ver en un tutorial MUY rapido, como insertar frases aleatorias en nuestro sitio (Weblog, fotolog, webpage, etc) levantandolas desde un archivo de texto plano (*.txt).

PHP:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Frases | Aleatorios |</title>
  6. </head>
  7. <?php
  8.     $arch = "frases.txt";
  9.     $file = fopen($arch, "r");
  10.    
  11.     $linea = array();
  12.     $i = 0;
  13.    
  14.     while(!feof($file)) {
  15.         $linea[$i] = fgets($file);
  16.         $i++;
  17.     }
  18.    
  19.    
  20.     $l_num = count($linea) - 1;
  21.    
  22.     $azar = round(rand(0, $l_num));
  23. ?>
  24. <body>
  25. La frase aleatoria del dia es: <h2><?php echo $linea[$azar]; ?></h2>
  26. </body>
  27. </html>

Explicación del Código:
1. Creamos una variable con la ruta al archivo de texto (frases.txt) que deberá estar guardado en alguna parte del servidor.

PHP:
  1. $arch = "frases.txt";

2. Con la función fopen creamos un handler al archivo de texto previamente creado/abierto. Lo llamaremos $file. Llamamos el archivo, como verán, en modo "solo lectura" ("r") ya que no vamos a escribir en el, siempre deberá estar creado para poder acceder a su contenido.

PHP:
  1. $file = fopen($arch, "r");

3. Creamos un array llamado $linea que conservará linea por linea del texto a parsear, e inicializamos una variable $i a 0, para guardar la posición del array.

PHP:
  1. $linea = array();
  2.     $i = 0;

4. Esto es lo más importante del ejemplo. Con la función "feof", preguntamos si el archivo termino de leer ( como utilizamos el signo de exclamación el bucle significa: "mientras no termine de leer"), pero aqui la usamos opuesta. A esta función le pasamos como parametro el puntero al archivo.
Acto seguido guardaremos cada linea que haya en el archivo en una posición del array $linea, con la función fgets que lee un texto hasta el final de linea (Salto de linea).
Sumamos uno a la variable $i para continuar guardando datos en el array.

PHP:
  1. while(!feof($file)) {
  2.         $linea[$i] = fgets($file);
  3.         $i++;
  4.     }

5. Creamos una variable $l_num y hacemos un conteo de la cantidad de elementos que tiene el array, a la cual debermos extraer 1, ya que sino nos daria error (por salirnos de los limites del array).

PHP:
  1. $l_num = count($linea) - 1;

6. Aqui hacemos la magia :P. Creamos una variable $azar que nos devolverá un numero redondeado (round) de 0 (Primera posición del array) hasta $l_num (Ultima posición del array).

PHP:
  1. $azar = round(rand(0, $l_num));

7. Por ultimo mostramos la frase al azar del dia, de la siguiente manera:

PHP:
  1. echo $linea[$azar];

Les dejo un enlace al resultado de este ejercicio (A pedido de mis alumnos :P)

(3) Comments    Read More   
Posted on 30-07-2008
Filed Under (Desarrollo, PHP, Personal) by Programlocura

Orientación a objetos:
El paradigma de orientación a objetos es una metodología de la programación adoptada para resolver ciertos problemas que, la programación estructurada, no permitía.
Esta constituida principalmente por 2 conceptos: Las clases y los objetos.

Clases
- Podemos pensar una clase como un “molde” para crear objetos. Estos objetos tendrán cierta forma definida y heredara ciertas propiedades que el molde tiene.
Por ejemplo podríamos tener una clase “alumnos” cuyos objetos serian los alumnos, cada alumno tiene propiedades grupales (heredadas de la clase) y propiedades propias. Los objetos creados de una clase son “instancias de una clase” y al proceso de crear un objeto se llama instanciación.

¿Con que elementos definimos una clase? (Miembros)

  • Propiedades: Una propiedad es un atributo que tiene un objeto, modificable a través de un método.
  • Métodos o funciones: Los métodos o funciones llevan a cabo acciones dentro de la clase.
    La idea principal de las clases radica en tener ciertas propiedades que puedan ser accesibles y otras no, como un objeto real (Por ejemplo el televisor).

Objetos
- Los objetos son instancias de clases. Reciben ciertas propiedades (heredan) de la clase de las que han sido instanciados.
Por ejemplo, si tuviésemos la clase y los alumnos fuesen los objetos, por ejemplo, todos deberían tener ciertas propiedades como: posición en la clase, identificación (a través del nombre en este caso), etc.

Un objeto (como en el mundo real) puede ser cualquier cosa.

Entonces podemos definir a un objeto en POO, como un conjunto de datos y funciones relacionadas. A las funciones de los objetos, tales como acelerar en el caso del auto, de aquí en más las llamaremos métodos, a los datos los llamaremos atributos.

Un ejemplo mas complicado de un objeto podría ser el siguiente:
Objeto: Cuenta bancaria
Atributos: tipo, titular, saldo.
Métodos: Depositar, Extraer.

Practico

Creamos una clase

PHP:
  1. <?php
  2.          class Banco {
  3.  
  4.          }
  5. ?>

Creamos un objeto de la Clase

PHP:
  1. <?php
  2.          class Banco {
  3.  
  4.          }
  5.  
  6.          $objeto = new Banco();
  7. ?>

Métodos

Aquí creamos un método (Se puede observar que es igual que crear una función común y corriente).

PHP:
  1. <?php
  2.          class Banco {
  3.                 function metodo() {
  4.                     $var = “Estas llamando a un método”;
  5.  
  6.                     Return $var;
  7.                 }
  8.          }
  9. ?>

Accediendo a un Método

Accedemos a un método previamente declarado en una clase con el operador ->.

PHP:
  1. <?php
  2.          class Banco {
  3.                 function metodo() {
  4.                     $var = “Estas llamando a un método”;
  5.  
  6.                     Return $var;
  7.                 }
  8.          }
  9.  
  10.          $objeto = new Banco();
  11.  
  12.          echo $objeto->metodo();
  13. ?>

Constructor

Cuando creamos un objeto, las variables pueden tener un valor por default de cualquier tipo, pero para esto debemos colocárselos manualmente, ya que en un inicio podríamos necesitar que los datos para crear un objeto fuesen variables.-

PHP:
  1. <?php
  2.          class Banco {
  3.                 private $variable1;
  4.                 private $variable2;
  5.                 private $variable3;
  6.  
  7.                 public function __construct() {
  8.                     $this->variable1 = “Aquí valor 1”;
  9.                     $this->variable2 = “Aquí valor 2”;
  10.                     $this->variable3 = “Aquí valor 3”;
  11.                 }
  12.  
  13.                 function metodo() {
  14.                     $var = “Estas llamando a un método”;
  15.  
  16.                     Return $var;
  17.                 }
  18.          }
  19. ?>

El constructor establece que al momento de crear el objeto se inicien las variables creadas dentro de el con ciertos valores que especificaremos de la manera que vimos.

Esto tiene una segunda parte. Me gustaría si tuviesen la posibilidad de mirar y corregirlo seria muy bueno, muchos datos están extraídos de distintas paginas (Sito las fuentes debajo).

Fuentes:
- ZonaPHP
- Maestros del Web
- PHP en castellano

(0) Comments    Read More   
Posted on 29-07-2008
Filed Under (Personal) by Programlocura

Buenas, este post es corto porque quiero decir que sigo vivo a pesar de que no estoy posteando asiduamente!

Se me está complicando, prometo completar el código de la "Batalla Naval" (Para VB.NET) y luego seguir con los tutoriales de FLASH y PHP.

No me extrañen xD
Saludos.

(0) Comments    Read More   
Posted on 18-06-2008
Filed Under (Desarrollo, PHP) by Programlocura

Estoy con muy poco tiempo ultimamente, por eso no he posteado nada.

Hoy fué mi primer dia como profesor en el "Circulo Informatico", estoy bastante conforme aunque todavia me quedaron unas cosas que repasar y dar en clase, supongo que todo se organizará a medida que me vaya acostumbrando.

Por otra parte con la oficina nos mudamos y tambien estamos en tramites de organización... Asi que estoy en un clima de "cambios".

A partir de hoy voy a comenzar a crear el "Cursos de PHP" que voy dando en clase y lo voy a ir colocando aqui para que pueda ser utilizado por cualquiera que desee.

Sitio oficial del Circulo Informatico

(0) Comments    Read More   
Posted on 29-05-2008
Filed Under (Desarrollo, PHP) by Programlocura

Hoy les traigo una forma de crear los RSS para su sitio dinamicamente, a que me refiero con esto? A utilizarlo para que cada vez que se realize una inserción de una noticia, una imagen, o lo que sea, esta sea agregada al "RSS.XML" para los suscriptores.

RSS - Syndicate your Articles

PHP:
  1. <?php
  2.     // Creamos un Archivo llamado rss.xml
  3.     $name_file="rss.xml";
  4.     // Lo abrimos para escribir. Si no existe entonces lo creamos.
  5.     $file = fopen($name_file,"w+");
  6.    
  7.     // Aqui establecemos lo basico para formatear el XML.
  8.     // la version y el juego de Caracteres (utf-8).
  9.     $xml = '<?xml version="1.0" encoding="utf-8"?>'."\n";
  10.     $xml.= '<rss version="2.0">'."\n";
  11.     $xml.= '<channel>';
  12.    
  13.     // Aqui podemos hacerlo Dinamico o no, por eso dejé vacio, para que lo llenen
  14.     // Podemos especificar el Titulo, la url (link), una descripción, el lenguaje, y la ultima fecha
  15.     // de creado (De esto puede prescindir)
  16.     $xml.='
  17.     <title>Titulo del Blog</title>
  18.     <link>http://el-enlace-a-tus-feeds-o-tu-blog</link>
  19.     <description>Inserta tu descripcion aqui</description>
  20.     <language>en-us</language>
  21.     <lastBuildDate>01/01/01</lastBuildDate>';
  22.    
  23.     // Ejecutamos una consulta a una base de datos: Puede ser a cualquier tabla tales como
  24.     // Noticias, Imagenes, entre otras. Lo unico que debe cumplir es tener la información
  25.     // suficiente para ejecutar lo siguiente
  26.     $SQL = "SELECT * FROM tu_tabla";
  27.     // $conexion - Es el Handler de la conexion devuelto por "mysql_connect(host, user, pass)"
  28.     $query = mysql_query($SQL, $conexion);
  29.    
  30.     // Llenamos un array con el resultado de la consulta y por cada uno de estos
  31.     // Escribimos un ITEM con su respectiva declaracion.
  32.     // --------------------------------------------------------------------------
  33.     // <title>      - Titulo del Articulo
  34.     // <link>         - Enlace al mismo
  35.     // <pubDate>        - Fecha de Publicado
  36.     // <description>    - Descripcion
  37.    
  38.     while ($reg = mysql_fetch_array($query)) {
  39.         $xml.= '
  40.         <item>
  41.         <title>'.$reg["titulo"].'</title>
  42.         <link>'.$reg["link"].'</link>
  43.         <pubDate>'.$reg["fecha_publicacion"].'</pubDate>
  44.         <description>'.$reg["descripcion"].'</description>
  45.         </item>'."\n";
  46.     }
  47.    
  48.     // Cerramos las Etiquetas abiertas en el inicio. CHANNEL y RSS
  49.     $xml.= '</channel>'."\n";
  50.     $xml.= '</rss>';
  51.    
  52.     // Escribimos el contenido de la variable XML al Archivo y lo cerramos
  53.     fwrite ($file, $xml);
  54.     fclose($file);
  55. ?>

Esta explicado, pero basicamente lo que hace es generar un archivo (cada vez que el script es llamado) con las actualizaciones sacadas de la base de datos. Es muy util cuando hacemos un ABM de noticias (lo mas común) que al insertar una debamos hacer pasar en algun momento del proceso por este SCRIPT para que cree el nuevo archivo RSS en la raiz del sitio.

EDITADO:
Disculpen, no habia visto que quedó mal el codigo debido a la "Interfaz" visual de Wordpress... Que reemplaza por las entidades HTML ...

Si tienen una mejor forma de hacerlo y quieren recomendarla pueden dejar sus comentarios! :)

(0) Comments    Read More