Programación orientada a objetos en PHP 2: Constructores y destructores

Y aquí va la segunda entrega del minicurso de programación orientada a objetos en PHP. Esta vez toca el turno a los constructores y a los destructores. Si todo va bien mañana publicaré el enlace al vídeo.

Programación orientada a objetos en PHP 2: Constructores y destructores

Ordenar un array por fechas en PHP

Seguramente ya conocerás la función sort para ordenar un array en PHP. Pero además de ésta existe otra función muy útil a la hora de ordenar arrays; se trata de la función usort. Una de las ventajas de esta función es que nos permite ordenar un array por fechas.

Ejemplo de usort para ordenar por fechas:

<?php
$fechas_nacimiento = array(
    array(
        'nombre' => 'Paco',
        'fecha'  => '22-12-2012'
    ),
    array(
        'nombre' => 'Luis',
        'fecha'  => '30-08-2012'
    ),
    array(
        'nombre' => 'Mar&iacute;a',
        'fecha'  => '25-01-2013'
    )
);
 
function ordenar( $a, $b ) {
    return strtotime($a['fecha']) - strtotime($b['fecha']);
}
 
function mostrar_array($datos) {
	foreach($datos as $dato) 
		echo "{$dato['fecha']} -&gt; {$dato['nombre']}<br/>";
}
 
 
usort($fechas_nacimiento, 'ordenar');
 
mostrar_array($fechas_nacimiento);
 
?>

Que nos dará como resultado:

30-08-2012 -> Luis
22-12-2012 -> Paco
25-01-2013 -> María

Dar un valor inicial a un radio button si no tiene valor (jQuery+PHP)

Esta es una ampliación de este otro post reciente.

Si tenemos este trozo de formulario:

<input type="radio" name="tipo_cliente" id="tipo_cliente_defecto" value="2" <?=$valor_inicial==2?'checked':'';?>/> Particular
<input type="radio" name="tipo_cliente" value="3" <?=$valor_inicial==3?'checked':'';?>"/> Aut&oacute;nomo
<input type="radio" name="tipo_cliente" value="1" <?=$valor_inicial==1?'checked':'';?>"/> Empresa

En el que dependiendo del valor de la variable $valor_incial (variable PHP) se escoge una opción u otra.

En ocasiones puede que esa variable no tenga valor (porque sea la primera vez que se rellena el formulario por ejemplo). Podemos solucionarlo dándole el valor inicial en PHP o podemos hacerlo con jQuery:

$(document).ready(function() {
	if(!$("input[name=tipo_cliente]:checked").val()) {
		$("#tipo_cliente_defecto").prop('checked', 'checked');
	}	
});

Claro está, para que funcione la opción que queremos por defecto debe tener la id tipo_cliente_defecto.

Servidor Web + PHP + MySQL + PHPMyAdmin en Android

Hoy he encontrado una joyita que quiero compartir con vosotros. Si le tenéis tanta aversión a Java como yo (¿por qué? … manías) tengo una buena noticia. Podéis desarrollar aplicaciones web para Android que funcionan sin conexión a Internet gracias a KSWEB, un servidor web que incluye PHP y MySQL.

Lo estoy probando y, por ahora, me está sorprendiendo gratamente. Se puede instalar gratis pero la licencia expira en cinco días. Cuesta unos tres euros pero si cumple lo que promete los vale. Os mantendré informados.

 KSWeb - Servidor web + PHP + MySQL en Android

Enlace a la web del autor: http://kslabs.ru/

Función en PHP para calcular si un DNI o un NIE son válidos

He aquí un clásico por el que todos habremos tenido que pasar alguna vez. Acabo de rescatarlo del armario del olvido y lo he modificado para que compruebe también si es un NIE válido (documento de identidad para extranjeros). Espero que a alguien le sirva de ayuda:

function comprobar_documento_identificacion($dni) {
	if(strlen($dni)<9) {
		return "DNI demasiado corto.";
	}
 
	$dni = strtoupper($dni);
 
	$letra = substr($dni, -1, 1);
	$numero = substr($dni, 0, 8);
 
	// Si es un NIE hay que cambiar la primera letra por 0, 1 ó 2 dependiendo de si es X, Y o Z.
	$numero = str_replace(array('X', 'Y', 'Z'), array(0, 1, 2), $numero);	
 
	$modulo = $numero % 23;
	$letras_validas = "TRWAGMYFPDXBNJZSQVHLCKE";
	$letra_correcta = substr($letras_validas, $modulo, 1);
 
	if($letra_correcta!=$letra) {
		return "Letra incorrecta, la letra deber&iacute;a ser la $letra_correcta.";
	}
	else {
		return "OK";
	}
}

Función PHP para dar formato a un número de teléfono

Hoy os dejo una sencilla función que nos formatea un número de teléfono para que quede más “leíble”. Lo primero que hace es eliminar espacios y guiones (puedes eliminar otros caracteres añadiéndolos al array) y luego agrupa los dígitos de 3 en 3. Por ejemplo:

94 444 4888 -> 944 444 888
944444888 -> 944 444 888
+3494 444 4888 -> +34 944 444 888

Esto se consigue con este sencillo código:

function telefono($numero) {
	$numero = str_replace(array(" ", "-"), array(""), $numero);
	$comienzo = strlen($numero);
	$resultado = '';
	while($comienzo>=0) {
		$resultado = substr($numero, $comienzo, 3) . " " . $resultado;
		$comienzo -= 3;
	}
	return $resultado;
}

El Rincón del PHP – Web dedicada a la programación en PHP

Siguiendo con nuestros contínuos lanzamientos 🙂 hace un par de días pusimos en marcha la nueva web del Rincón del PHP.

La idea de la web es ser un punto en el que poder encontrar información sobre PHP, cursos y un foro donde podamos conocernos, compartir ideas y exponer dudas.

Entra en el Rincón del PHP, los foros están nuevecitos ¿te animas a estrenarlos?