Creando ejecutables en PHP
Hace tiempo que llevaba queriendo escribir este tutorial, bueno, más que escribir, pasar a limpio, porque lo tenía en un *.txt esperando a ser publicado. Consiste básicamente en como crear un ejecutable programado en php, para poderlo abrir sin necesidad de navegador u otros.
Lo primero que hay que hacer si no se ha hecho al instalar PHP, es emerger php-cgi:
#emerge php-cgi
Y comprobamos que nos deja ejecutar archivos PHP, escribiendo (como usuario mismamente):
$php archivo.php
Esto está muy bien, pero necesitamos ejecutar un script mediante un programa, en lugar de crear una especie de programa que se ejecute "por sí mismo", para ello, lo primero que debemos de hacer, es dar permisos de ejecución al archivo:
#chmod +x archivo.php
Ya tenemos hecho el "ejecutable", pero ¿cómo tiene que estar programado dicho ejecutable?, en PHP simple y llanamente, lo único que debemos de introducir una cabecera al principio con el programa que ejecutará el script al ejecutarlo (valga la redundancia), es decir, que haga lo que hemos hecho antes el solo. Para ello lo primero debemos saber donde está el programa:
# whereis php php: /usr/bin/php /etc/php /usr/lib/php /usr/include/php /usr/man/man1/php.1.gz /usr/share/man/man1/php.1.gz
Nos fijamos en la primera ruta, que es /usr/bin/php, sabiendo esto, el archivo.php, debería ser de la siguiente forma:
#!/usr/bin/php -q < ? //todo el código PHP ?>
Y ya solo nos quedaría moverlo a una carpeta donde se guarden los ejecutables, para evitar escribir la ruta exacta todas las veces, para esto hacemos:
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
, y lo movemos a cualquiera de esas rutas, con lo que para ejecutar el programa, sencillamente habría que escribir:
archivo.php
El ejemplo que voy a poner, sirve para calcular el tiempo que queda para que de comienzo la Campus Party 2004 (si da negativo es que ya ha empezado :D), y el código es este:
#!/usr/bin/php -q < ? $ahora = time(); $campus = mktime (12,0,0,7,26,2004); $resta = $campus - $ahora; $dias = floor($resta/(24*60*60)); $horas = floor(($resta - $dias*(24*60*60))/(60*60)); $minutos = floor(($resta - $dias*(24*60*60) - $horas*(60*60))/60); $segundos = floor($resta - $dias*(24*60*60) - $horas*(60*60) - $minutos*60); echo "Faltan $dias dias, $horas horas, $minutos minutos y $segundos segundos para el gran momento... :)"; ?>
Si es posible, dejad en los comentarios algún programa interesante que hayais hecho, para ver que al menos estas líneas han servido de algo.

Suscríbete
07/07/2004
21:14
Categorías:
Comentar
Tags:

Mola. Lástima que eso no valga en Windows :’(.
Mmm, tengo un colega que usa win, y que yo sepa lo está usando… ya le diré que se pase por aquí para que te diga
En windows es casi mas simple… con asocial los archivos .php en el sistema pa ke al abrir ejecuten php.exe -q ya daberia servir, aunke no l ohe probado, yo uso cygwin, ke tiene su bash y los ejecuta = … aunke tuve ke crear un symlink en /usr/bin/php hacia el php.exe real xD
Para GiGaHeRz
Hum, en WinXP no va. No sé si esporque no me deja pasar parámetros al programa que ejecuta el archivo. De todos modos ahora mismo no necesito autoejecutables para nada, cuando me vea en la necesidad probaré lo que dices del cygwin.
Gracias por responder.