| Subcribe via RSS

Code Igniter: llamar a un controlador desde consola o desde otro fichero.php

Abril 30th, 2009 | No Comments » | Posted in code igniter, php, programacion

Si has trabajado con Code Igniter encontrarás este “truquillo” de mucha utilidad. Te permitirá llamar a un controlador desde consola o desde otro fichero PHP. Por ejemplo:

1) Supón que tienes una tarea (en un cron) que tiene que llamar a un controlador de tu aplicación Code Igniter. Supongamos que tienes un controlador que se llama ’saludar’ y quieres llamar a la función ‘decir_hola’ de ese controlador. No puedes hacer la llamada así:

php /var/www/saludar/decir_hola

ni:

php /var/www/index.php/saludar/decir_hola

(pruébalo)

2) También es posible que necesites recibir parámetros $_GET pero, por ejemplo, no sabes en el orden en el que te los van a enviar.

En ambos casos puedes crear un fichero llamado, por ejemplo, redirigir.php con el contenido siguiente:

<?php
// Recoger parámetros o cualquier otra tarea previa que necesites antes de llamar al controlador
...
// Fin de tareas previas
 
$_SERVER['PATH_INFO']    = 'saludar/decir_hola';
 
require('index.php');
?>

o incluso, podemos pasarle parámetros desde la consola:

<?php
$_SERVER['PATH_INFO']    = $argv[1];
require('index.php');
?>

(Si usas el fichero .htaccess no olvides añadir este fichero redirigir.php para que se pueda ejecutar).

Tags: , ,

Concentración en Bilbao y Barcelona a favor del libre intercambio cultural

Abril 30th, 2009 | No Comments » | Posted in uncategorized

Fecha: 2 de Mayo del 2009 a las 18:30

Bilbao: Gran Vía, frente a la sede de la innombrable
Barcelona: Plaça de Catalunya
Vallfogona del Ripollès (Girona): Frente el ayuntamiento

Más información:

http://hckrs.probeta.yi.org/index.php/Acciones:Cultura_404_2

Vía Menéame.

Curso de PHP: Ejercicios de cadenas y funciones

Abril 29th, 2009 | No Comments » | Posted in php, programacion

Dado que llevo bastante tiempo impartiendo cursos de PHP en Bilbao ya va siendo hora de poner un poco de orden y actualizar los ejercicios.

Según los vaya poniendo “bonitos” los iré publicando aquí.

En esta primera tanda pondré algunos ejercicios de cadenas y funciones que servirán de repaso a mis alumnos. A ver si se animan algunos a hacerlos, que haciendo el esfuerzo de resolverlos es como se aprende, no mirando cómo los resuelve otro (este es un pequeño tirón de orejas para un par de personas :-D ).

<?php
/*
 * Para los siguientes ejercicios se deben/pueden usar las siguientes funciones:
 * 
 * - substr($cadena, $comienzo, $longitud);
 * 		Extrae una subcadena de una cadena:
 * 		$cadena - es la cadena de la que queremos sacar una subcadena
 * 		$comienzo - es la posición a partir de la que empezamos a extraer. El primer carácter
 * 		está en la posición 0.
 * 		$longitud - con este parámetro indicamos la longitud de la cadena. Es opcional, si
 * 		no lo ponemos nos cogerá todo desde el comienzo que hemos especificado hasta el final.
 * 
 * - strlen($cadena);
 * 		Cuenta el número de caracteres que tiene la cadena.
 * 
 * - strtoupper($cadena);
 * 		Convierte una cadena en mayúsculas.
 */
 
/*
 * Ejercicio 1:
 * 
 * Escribir una función que convierta la primera letra de una cadena en mayúsculas.
 * 
 */
 
echo '<h1>Ejercicio 1</h1>';
 
function corregir_primera_letra($cadena)
{
 
}
 
echo corregir_primera_letra('gorka'); // --> debe mostrar: Gorka
echo "<br/>";
echo corregir_primera_letra('GORKA'); // --> debe mostrar: GORKA
echo "<br/>";
echo corregir_primera_letra('Gorka'); // --> debe mostrar: Gorka
echo "<br/>";
 
/*
 * Ejercicio 2:
 * 
 * ¿Daría algún error si usamos una cadena de una sola letra? ¿Sabrías por qué?
 * 
 */
 
echo '<h1>Ejercicio 2</h1>';
echo corregir_primera_letra('G');
echo "<br/>";
 
/*
 * Ejercicio 3:
 * 
 * ¿Funcionaría bien la siguiente función? Por el nombre es evidente que no pero
 * ¿por qué? 
 */
 
function corregir_primera_letra_version_mala($cadena)
{
	$letra = substr($cadena, 0, 1);
	$letra = strtoupper($letra);
	$resto = substr($cadena, 1);
	$cadena_corregida = $letra . $cadena;
	return $cadena_corregida;	
}
 
/*
 * Ejercicio 4:
 * 
 * Crear una función que coja una cadena, ponga la primera en mayúsculas y
 * el resto en minúsculas.
 */
 
function corregir_mayusculas($cadena)
{
 
}
 
echo '<h1>Ejercicio 4</h1>';
echo corregir_primera_letra('gorka'); // --> debe mostrar: Gorka
echo "<br/>";
echo corregir_primera_letra('GORKA'); // --> debe mostrar: Gorka
echo "<br/>";
echo corregir_primera_letra('Gorka'); // --> debe mostrar: Gorka
echo "<br/>";
 
/*
 * Ejercicio 5:
 * 
 * Escribir una función que cuente el número de 'a' minúsculas que hay en una frase.
 * (usar for en lugar de foreach)
 */
 
function contar_letra_a($cadena)
{
 
}
 
echo '<h1>Ejercicio 5</h1>';
echo contar_letra_a('gorka'); // --> debe mostrar: 1
echo "<br/>";
echo contar_letra_a('La bala mata la vaca'); // --> debe mostrar: 8
echo "<br/>";
echo contar_letra_a('El oso osó asir a la osa'); // --> debe mostrar: 4
echo "<br/>";
 
/*
 * Ejercicio 6: (este es para nota)
 * 
 * Escribir una función que cuente el número de mayúsculas de una cadena.
 * 
 */
 
function contar_mayusculas($cadena)
{
 
}
 
echo '<h1>Ejercicio 6</h1>';
echo contar_mayusculas('gorka'); // --> debe mostrar: 0
echo "<br/>";
echo contar_mayusculas('La bala mata la vaca'); // --> debe mostrar: 1
echo "<br/>";
 
/*
 * Ejercicio 7: (este es para nota)
 * 
 * Si usamos una cadena como la que viene a continuación ¿contará bien? ¿por qué?
 * ¿cómo corregirías la función? (pista: problemas con la letra 'Ñ')
 * 
 */
echo '<h1>Ejercicio 7</h1>';
echo contar_mayusculas('El Ñoño Niñato Ñoñeaba sin parar');
echo "<br/>";
 
function contar_mayusculas_corregida($cadena)
{
 
}
 
echo contar_mayusculas_corregida('El Ñoño Niñato Ñoñeaba sin parar');
echo "<br/>";
?>
Tags: , , ,

Introducción a bash: crear un sencillo script

Abril 27th, 2009 | 1 Comment | Posted in Bash, linux

Con este artículo voy a iniciar una corta serie de artículos para aprender a escribir sencillos scripts de bash.

Bash es un intérprete de comandos de Linux. Los que han trabajado con Windows/MS-Dos les sonarán seguramente los archivos .bat. Estos scripts bash son algo muy similar.

Para crear nuestro primer script debemos crear un fichero, por ejemplo primero.sh y copiamos el siguiente contenido:

echo "Eh, este es mi primer script bash"

Ahora tenemos que hacerlo “ejecutable”, para ello teclearemos en la consola:

chmod +x primero.sh

y ahora podemos ejecutarlo:

./primero.sh

Y ahora vamos a darle un poco más de gracia al asunto. En un script podemos usar los mismos comandos que si estuviéramos en la consola de Linux, por ejemplo: ls -las. Vamos a modificar el script:

echo "Este es el listado de directorios y ficheros:"
ls -las

Más adelante veremos que se pueden pasar parámetros a un script bash, se pueden usar variables, bucles, condiciones, arrays, etc…

Tags: , ,

Bash: listar los usuarios de un ordenador

Abril 24th, 2009 | No Comments » | Posted in Bash, linux, programacion, ubuntu

Dado que últimamente estoy haciendo bastantes cosillas con bash voy a poner una serie de “truquillos” aquí.

NOTA: El ejemplo que propongo aquí es un copia/pega de un script que creé para un servidor y una finalidad muy concretas.

En cierto servidor necesitaba tener un listado de los usuarios. Una posibilidad puede ser ir al directorio home y ver allí los usuarios (cada usuario tendrá un directorio ‘home’).

for directorio in /home/*; do
	echo ./actualizador_cada.sh $directorio.
done

dará como resultado:

/home/gorka
/home/alumno
/home/lost+found
/home/mysql
...

Si queremos que no nos muestre ‘/home’ podemos eliminar esa parte de cada directorio usando una subcadena:

echo ${directorio:6}

(esto mostrará una subcadena de $directorio desde la posición 6 hasta el final)

for directorio in /home/*; do
	echo ${directorio:6}
done

dará como resultado:

gorka
alumno
lost+found
mysql
...

NOTA: esto funciona en un sistema en el que los usuarios tengan directorios ‘home’ iguales a su nombres de usuario.

Seguramente verás que hay algunos usuarios que no te interesan (en mi caso sólo me interesaban los usuarios “reales”) así que añadí unas líneas para eliminar los que no interesaban (mysql, lost+found, etc…):

usuarios_no_validos=( 'mysql' 'lost+found')
for directorio in /home/*; do
	valido=1
	usuario=${directorio:6}
	for usuario_no_valido in ${usuarios_no_validos[@]}; do
		if [ $usuario_no_valido = $usuario ]; then
			valido=0
		fi
	done
	if [ $valido -eq 1 ]; then
		echo $usuario
	fi
done
Tags: , , ,

Un juego online muy cómodo

Abril 11th, 2009 | No Comments » | Posted in chorradillas

Hoy me han pasado este enlace a un juego online donde no tienes que hacer nada, él juega solito tus combates. Es una tontería pero me han hecho gracia los muñequitos (sí, soy así de simple :-P ):

http://chorondongo.elbruto.es

No está mal para solucionar las cosas a puñetazos sin que nadie salga herido :-D

Tags:

Aptana Studio en Ubuntu

Abril 9th, 2009 | 1 Comment | Posted in heramientas, php, programacion

Después de un tiempo usando Eclipse para los proyectos de Python he decidido buscarme otra opción para mis proyectos basados en PHP (que no son pocos). Desde hace unos años vengo usando el Quanta Plus, que cumplía a la perfección con lo que necesitaba. Sin embargo echo de menos algunas cosillas que puedo usar cuando desarrollo con Python en Eclipse.

Así que me he decidio a instalar algunos de los plugins para PHP que tiene Eclipse (entre otros el PDT). Creo que todos ellos me han dado problemas y, cuando estaba a punto de desistir, he recordado a Aptana Studio, que puede funcionar él solito o como un plugin de Eclipse. Me lo he descargado y, para variar, ha habido problemas. Después de investigar un poco he encontrado la solución aquí:

http://forums.aptana.com/viewtopic.php?t=7147

Parece que el problema tiene que ver con Xulrunner, la versión que instala Ubuntu por defecto, la 1.9.0.3 no es compatible con Aptana (en el post explican cómo solucionarlo).

Dado que lo que me interesaba era desarrollar con PHP me he instalado también el plugin para PHP (es muy sencillo, basta ir a la pestaña “My Aptana” y pinchar en Plugins, y finalmente en el “Get it” que está justo bajo “Aptana PHP”.

Entre otras cosas (como el tener un panel con el listado de todas las funciones y objetos que tienes en el fichero que estás editando) hay una que me gusta especialmenete; se trata de la sincronización. Esta sincronización te permite definir y subir/bajar ficheros al/del servidor, lo que acelera enromemente el trabajo.

Os recomiendo que lo probéis.

Tags: , , , ,

Alquiler de proyectores en Bilbao

Abril 1st, 2009 | No Comments » | Posted in mis-proyectos

Después de más de un año con abaconegocios.com funcionando hemos decidido dar un paso más y lanzar abacoproyectores.com. Esta nueva web está centrada en el alquiler de proyectores en Bilbao y alrededores.

Hemos mantenido el diseño y la estructura de la web, que creemos es muy sencilla de usar, dado que en realidad es una rama más del mismo negocio. Realmente llevamos ya un tiempo ofreciendo este servicio, pero con el lanzamiento de la web queríamos “oficializarlo”. Además, al estar separadas, podemos optimizar el posicionamiento de cada una de ellas en los buscadores.

Tags: , ,