Entradas sobre PHP
Lo que me gusta de la programacion, es que las cosas se pueden hacer de muchas maneras para obtener un mismo resultado.
La manera clásica:
Pero, ¿Sabias que tambien lo puedes hacer de esta manera?
Los dos ejemplos asignan a la variable $contenido el contenido del fichero /usr/local/algo.txt
esta es una de las dudas que tenia, desde que termine el FP y que no me respondieron los profesores
he hecho algunas pruebas en el servidor donde estoy alojado con la version del php 4.4.4 y el resultado ha sido de 4093 caracteres
Diario de cambios:
Version: 0.3
Ultima edicion: 6-julio-2007
- arreglado un problema en la funcion enmarcar, siempre muestra el mensaje $str
- he añadido los constructores para que sea compatible con PHP 5
Hoy he terminado de desarrollar dos classes en PHP
- para conectar con una base de datos MySQL
- para hacer llamadas a la base de datos (querys, updates, deletes, inserts, etc.)
Caracteristicas importantes:
- al hacer selects, si estas devuelven valores, se tiene que hacer mysql_free_result($mysql_result) para liberar recursos, esta clase lo hace automaticamente
- cuando haces una query esta devuelve una tabla de objetos
puedes acceder a los valores mediante $query1->v[0]->nombre o recorrerlos todos con un foreach
con lo que ya no tienes que dudar si era un mysql_fetch_row, mysql_fetch_assoc u otro...
- modo de depuracion, si estas en modo de depuracion si se producen errores, se mostraran las querys tal y como se han ejecutado a la base de datos
- muy facil de recordar y programar, ya que se tiene que escribir muy poco
- Cierra la conexion datos automaticamente al final de la aplicacion, utilizando un __destructor() compatible con PHP4 y 5
Ejemplo practico:
-
//incluimos la clase
-
require 'class_mysql.php';
-
-
//creamos el objeto bd para poder conectar con la base de datos
-
//Nota: para el modo debug se tiene que escribir: $bd = new bd(1);
-
$bd = new bd();
-
-
//para hacer una query
-
$query1 = new query('select id, nombre, apellidos from trabajadores',$bd);
-
-
//podemos comprobar si la query ha obtenido valores (no hace falta para mostrar datos)
-
if($query1->n){
-
-
//recorremos las filas y mostramos los resultados
-
foreach ($query1->v as $fila)
-
}else{
-
//si no hay valores se muestra un mensaje
-
echo 'no se encontraron resultados';
-
}
Otras caracteristicas:
- para evitar sql-injections, debes filtrar los datos de esta manera:
PHP:
-
$query1 = new query("select * from usuarios where nombre='".$bd->f($_POST['nombre'])."' and password='".$bd->f($_POST['password'])."'",$bd);
-
- saber numero de filas afectadas, al hacer por ejemplo un update:
PHP:
-
$query1 = new query("update trabajadores set salario='1000' where departamento='12'",$bd);
-
Pasos:
Recuerda: (antes de usar la clase tienes que editar las variables)
- var $usuari='root'; //nombre de usuario de la base de datos
- var $clau=''; //contraseña del usuario
- var $servidor='localhost'; //nombre del servidor, normalmente localhost
- var $nomBD=''; //nombre de la base de datos
Si te ha gustado, crees que se puede mejorar o si encuentras fallos, deja un comentario
en general las 4 funciones hacen lo mismo, importar en un documento php, funciones o variables de otros documentos escritos en php o html
esto resulta muy util y practico a la hora de dividir y organizar nuestro codigo
pongo un caso, imaginen una funcion que se ejecuta en 4 ficheros php, para poder utilizar la misma funcion esta tendria que estar escrita en cada uno de los ficheros
¿inconvenientes?
- si queremos modificar la funcion, tenemos que cambiar cada una de los ficheros donde este escrita
- tenemos mas trabajo y necesitamos mas tiempo a la hora de modificar cada uno de los ficheros
- mas dificil de mantener
- mas codigo
- mas espacio ocupado
solucion:
creamos un fichero llamado por ejemplo general.php con las funciones que necesitamos y añadimos un include a cada uno de los ficheros
luego para modificar la funcion solo tenemos que editar el fichero general.php
ejemplo de include:
fichero1.php
-
include 'fichero2.php';//$variable es igual a 10
fichero2.php
-
$variable = 10;
si ejecutamos el fichero1.php, mostrara por pantalla el valor de la variable $variable, 10
la diferencia entre require e include, es que si el fichero no existe:
- include mostrara un warning y continuara con la ejecucion
- require mostrara un fatal error y parara la ejecucion
ejemplo de include_once:
fichero1.php
-
include_once("fichero2.php"); //$variable es igual a 10
-
$variable = 20; //$variable es igual a 20
-
include_once("fichero2.php"); //$variable es igual a 20
fichero2.php
-
$variable = 10
si ejecutamos fichero1.php, mostrara por pantalla 20
¿porque 20 y no 10?
tanto include_once como require_once solo se pueden ejecutar una vez
la segunda vez que se llama a include_once, esta es como si no existiera.
si en vez de utilizar include_once, utilizamos include o require el valor final de $variable seria 10
include se comporta igual que include_once, a la hora de importar el fichero, si este no existe mostrara warning y continuara la ejecucion
lo mismo passa con require y require_once, si el fichero no existe muestra un fatal error y para la ejecucion
algunas anotaciones:
- vigila a la hora de hacer mas de un include con ficheros que contengan funciones
si importas un fichero que ya ha sido incluido antes o que contenga alguna funcion declarada anteriormente, aparacera un Fatal error y la ejecucion terminara, ya que no se puede declarar la misma funcion 2 veces - si quieres importar ficheros con solo variables, no tendras problemas para llamarlo mas de una vez (solo con include y require)
- utiliza require o require_once, para cargar archivos de configuracion, que contengan constantes
- puedes hacer un fichero php que contenga una plantilla html de un mensaje de foro y hacer un include a este fichero dentro de un while o for, ojo con include_once no lo puedes hacer
- si el fichero que quieres incluir esta escrito en php, este debe tener encima del codigo <?php y al final ?>, si es codigo html no hace falta
- Utiliza la comilla simple (') en vez de la comilla doble (") siempre que no vayas a usar variables dentro, la comilla doble hace que el intérprete analice lo que hay dentro de las comillas.
- La forma más rápida de concatenar texto es usando comillas simples.
- Cuando uses echo, separa los strings por comas mejor que con puntos, es más rápido. Esto solo funciona con echo.
- echo es más rápido que print.
Sobre el segundo punto la verdad es que no lo sabia, Alejando Torres hizo un comentario en mi post sobre mis manias a la hora de programar
El tercero tambien me ha sorprendido he hice un ejemplo:
-
$var = 13;
El resultado de este codigo es:
los 13 monos voladores
Via | Sentido Web



Sin dudas!
Pero yo le agregaria un Reseteado de Css más algunas cosas que modificaste al resetear el Css =P!
Saludos!