Posts Tagged ‘PHP’
AsgReport, reporteador PHP.

Reporte
En unos dias subo mas detalles, acerca de un reporteador que estoy desarrollando para php, explico en que consiste a ver si alguien me quiere acompañar en este proyecto.
No es para un cliente especifico, es solo para ahorrarme trabajo a la hora de realizar un software en php y sacar un reporte en PDF. basado en FPDF estoy realizando un GUI para dicha clase de producir PDFs, en algunos dias actualizo con mas detalles.
Manejo de cadenas en PHP.
El manejo de cadenas de texto es algo que tarde o temprano nos toca usar en cualquier lenguaje de programacion. Tanto si estas empesando o no recuerdas bien, aca hay un recuento de las funciones mas utilziadas para estos fines.
substr()
Esta cadena devuelve una porción de la cadena de texto. Su sintaxis es la siguiente:
substr(cadena_a_cortar, posicion_inicial, largo_devuelto)
ejemplo:
<?php $palabra = "Multimedia"; $palabra2 = substr($palabra, 2, 3); echo "<p>$palabra2</p>"; //Esto devolvería la cadena "lti". ?>
No hay que olvidar que las cadenas en PHP son un arreglo unidimensional donde el primer elemento tiene el subindice 0, que en nuetro caso es la posición.
El tercer argumento (largo) es opcional, y en ese caso la cadena devuelta es toda la cadena a partir de la pocición indicada en la función substr(). Ejemplo:
<?php $palabra = "Multimedia"; $palabra2 = substr($palabra, 2); echo "<p>$palabra2</p>"; //Lo cual devolvería la cadena "ltimedia". ?>
trim()
La función trim limpia todo los espacios blancos, saltos de carro y tabuladores que hayan a los lados de una cadena de texto. Ejemplo:
<?php $cadena1 = " La Araucana "; $cadena2 = trim($cadena1); echo "<p>$cadena2</p>"; ?>
Si se quiere limpiar sólo al final de la cadena se usa la función chop() y si se quiere limpiar los espacios blancos al comienzo se usa la función ltrim()
strlen()
Esta función devuelve el largo de una cadena de texto. Ejemplo:
<?php $cadena = "Instituto Las Americas"; $largo = strlen($cadena); echo "<p>$largo</p>"; ?>
strtolower() y strtoupper()
Para trasnformar una cadena a puras minúsculas se usa strlower(). Si se queire trasnformar la cacena a mayúsculas se usa strtoupper(). Ejemplo
<?php $cadena1 = "Computación"; $cadena2 = strtolower($cadena1); echo "<p>$cadena2</p>"; $cadena3 = strtoupper($cadena1); echo "<p>$cadena3</p>"; ?>
ereg() y eregi()
Estas fuciones sirven para ver si una cadena está dentro dentro de otra.Su sintaxis es:
ereg(cadena_a_buscar, cadena_donde_se_busca)
Por ejemplo:
<?php $texto1 = "Sacerdotes"; $texto2 = "SACERDOTES"; $buscar = "cerd"; if(ereg($buscar, $texto1)) echo "<p>se ha encontrado la cadena $buscar en la cadena $texto1</p>"; else echo "<p>no se ha encontrado la cadena $buscar en la cadena $texto1</p>"; if(ereg($buscar, $texto2)) echo "<p>se ha encontrado la cadena $buscar en la cadena $texto2</p>"; else echo "<p>no se ha encontrado la cadena $buscar en la cadena $texto2</p>"; ?>
Hay que hacer notar que erg() busca exatamente la cadena que se busca haciendo coincidir mayúsculas y minúsculas. En cambio eregi() busca sin distinguir entre mayúsculas y minñusculas. Ejemplo:
<?php $texto1 = "Sacerdotes"; $texto2 = "SACERDOTES"; $buscar = "cerd"; if(eregi($buscar, $texto1)) echo "<p>se ha encontrado la cadena $buscar en la cadena $texto1</p>"; else echo "<p>no se ha encontrado la cadena $buscar en la cadena $texto1</p>"; if(eregi($buscar, $texto2)) echo "<p>se ha encontrado la cadena $buscar en la cadena $texto2</p>"; else echo "<p>no se ha encontrado la cadena $buscar en la cadena $texto2</p>"; ?>
ereg_replace() y eregi_replace()
Estas funciones buscan una cadena determinada dentro de otra y la remplazan. Su sintaxis es:
ereg_replace(cadena_a _buscar, reemplazo, cadena_donde_buscar)
Ejemplo:
<?php $buscar = "Manual"; $reemplazar = "MANUAL"; $cadena1 = "Este es un minimanual de PHP"; $cadena2 = "Este es un miniManual de PHP"; $cadena1 = ereg_replace($buscar, $reemplazar, $cadena1); echo "<p>$cadena1</p>"; $cadena2 = ereg_replace($buscar, $reemplazar, $cadena2); echo "<p>$cadena2</p>"; ?>
ereg() busca la cadena exacta haciendo coincidir mayúsculas y minúsculas. En cambio eregi_replace() no hace distinción entre mayúsculas y minúscula.
Ejemplo:
<?php $buscar = "Manual"; $reemplazar = "MANUAL"; $cadena1 = "Este es un minimanual de PHP"; $cadena2 = "Este es un miniManual de PHP"; $cadena1 = eregi_replace($buscar, $reemplazar, $cadena1); echo "<p>$cadena1</p>"; $cadena2 = eregi_replace($buscar, $reemplazar, $cadena2); echo "<p>$cadena2</p>"; ?>
explode()
Esta función divide una cadena de texto en base a una cadena patrón devolviendo un arreglo constituido por los troxo obtenidos. Su sintaxis es:
explode(cadena_patron, cadena_a_dividir)
Ejemplo:
<?php
$linea = "Walter|Velásquez|98771338|Santiago Amengual 454|";
$datos = explode("|",$linea);
$nombres = $datos[0];
$apellidos = $datos[1];
$telefono = $datos[2];
$direccion = $datos[3];
echo "<p>Nombres: $nombres<br>
Apellidos: $apellidos<br>
Teléfono: $telefono<br>
Dirección: $direccion<br>
</p>";
?>
Enumeradores en PHP (como en C#)
En el mundo de la programacion los enumeradores son utilizados, para mantener una mayor claridad en el codigo, ya que evitan en tener cosa amarradas a un numero fijo especifico, lo cual hace el codigo mucho mas facil de mantener, pero no me pongo a inventar y le dejo una definicion (tipo microsoft) de que es un enumerador:
La palabra clave enum se utiliza para declarar una enumeración, un tipo distinto que consiste en un conjunto de constantes con nombre denominado lista de enumeradores.
Ejemplo en C#
enum Dias{ Dom = 1, Lun, Mar, Mie, Jue, Vie, Sab};
int x = (int)Dias.Mar;
Console.WriteLine(x);
//Esto produce como salida un 3.
Opcionalmente se puede establecer el orden, pero por defecto se inicia en cero, en el ejemplo anterior se dice que el primer elemento vale 1, los demas toman los valores por secuencia, si no tiene valor predefinido incrementa el valor de su antecesor.
Como PHP, no maneja nativamente el concepto de enumceradores, esta es una manera de implementarlo, aunque no la mejor, pero algo es algo.
Ejemplo de como aplicar lo anterior en php:
$miEnumeradorDias = array ("Dom" => 1, "Lun" => 2, "Mar" => 3, "Mie" => 4, "Jue" => 5, "Vie" => 6, "Sab" => 7);
$d = $miEnumeradorDias ["Mar"];
echo $d;
//Esto produce 3
Otro ejemplo similar:
$otroEnumerador = array("rojo" => 1, "azul" => 2, "amarillo" => 3);
$a = $otroEnumerador["azul"];
echo $a;
//Esto produce 2
Existen otras formas de emular los enumeradores, pero mientras esta me saco del apuro que tenia. Luego con tiempo vere si implemento la solucion planteada aca:
http://it.toolbox.com/blogs/macsploitation/enums-in-php-a-native-implementation-25228