¿ Quieres imprimir esta página ? Volver a la página principal de Recursos iSeries AS400 ¿ Necesitas ayuda ? En pruebas
System i5 iSeries AS400 Recursos. Compartiendo generamos conocimiento
Novedades en Recursos iSeries AS400
Noticias tecnológicas
Documentos
Introducción a PHP (2 de 2)

Este artículo es una traducción autorizada de una serie de 2 que realizó David Stockton para la revista eServer Magazine.
Copyright 2003 - David Stockton.
Este artículo apareció por primera vez en IBM eServer Computing Magazine en el mes de Octubre 2003.
Puedes ver la versión original de este artículo aquí

En la primera parte, he tratado la temática de configuración y puesta en marcha de PHP en tu iSeries. En esta segunda, ofreceré trucos y exploraré algunas cuestiones que PHP puede potencialmente resolver.

Incluso si eres nuevo en PHP, hay muchas posibilidades de que lo encuentres familiar: La sintaxis del PHP es similar a C++, por lo que tanto a los usuarios de C++, C, Java y Perl PHP les parecerá sencillo.

Condicionales y loops
en la primera parte hice una introducción a la función "echo" y al operador de asignación (=). Sin embargo poco podrás hacer con ellos.Y ahí es donde los condicionales y loops entran en juego.

Este ejemplo introduce varios conceptos nuevos:

<html><head><title><?= $_GET['title'] ?></title>
<body>
<?php
if (isset($_GET['printme'])) {
echo ("<pre>$_GET['contents']</pre>");
} else {
for ($i = 0; $i < 10; $i++) {
echo ($i . "<br>\n");
}
}
?>
</body>
</html>

La primera linea contiene este trozo de código: <?= $_GET['title'] ?>. Si lo desglosamos vemos que mientras que los últimos ejemplos incorporaban etiquetas "<?php", está linea contiene "<?= ", lo que es un atajo para “<?php echo ( ); ?>”. Lo que esté entre las etiquetas "<?= " es lo que se imprimirá en la página web.

Otro concepto nuevo es “$_GET['title'],” un array que contiene una lista de las variables que se envían a la página web con el método GET de HTTP. Supón que guardas este código en el IFS bajo el directorio raíz del servidor web como webpage.php y lo haces accesible bajo este URL:

http://mywebserver/webpage.php?title=Programando%20PHP
&contents=Programar%20PHP%20es%20divertido%21&printme=true

PHP extrae las variables de este URL y las pone en el array $_GET. Cuando se ejecuta el código PHP, el título de tu página web es “programando PHP” y la frase “programar PHP es divertido!” aparece en la página. “%20” en la URL representa un espacio y “%21” es la codificación para el signo de admiración.

La sintaxis de la sentencia "if" (por ejemplo la que está en la cuarta línea del código) es similar a la utilizada en C, Java o Perl. El código entre paréntesis que siguen al “if” comprueba si es cierto. Esta línea también contiene una función llamada “isset()”, que determina si la variable contiene algún valor. PHP encuentra el valor de $_GET['printme'] “true,” y el código dentro de la sentencia “if” se ejecuta. En este caso, la 5ª línea de código imprimirá los contenidos de la variable $_GET['contents'] dentro de algunas etiquetas <pre>.

Los resultados son absolutamente diferentes si accedes a la misma página web pero sin el parámetro “printme”:

http://mywebserver/webpage.php

en este caso, la variable $_GET['printme'] no está, por eso la sentencia "if" la avalúa como falso, y ejecuta el código que hay en la declaración "else".

for ($i = 0; $i < 10; $i++) {
echo ($i . “<br>\n”);
}< /SPAN >

La sintaxis para “for” es similar también a los lenguajes mencionados anteriormente. En este caso, el contador “$i”, es inicializado a “0.” Cada vez que el loop se ejecuta, el contador se incrementa en uno —el loop continuará mientras $i sea menor que 10-. Este código hace salir los número de uno a nueve en líneas separadas.

Ejemplos de Scripts
PHP ofrece una colección amplia de funciones, y su sistema de API's es también uno de los más bien documentados que he visto. Según lo observado en la parte 1, el Web site de PHP ofrece abundante información sobre cadenas, bases de datos, números, tipos variables, series, expresiones regulares y otras funciones de de PHP. Si deseas hacer algo con cierta variable, la función probablemente ya está construida en PHP.

Considera estos dos scripts de ejemplo en PHP, que utilizan el API.

El script WRKACTJOB - Ejemplo 1 este ejemplo contiene el código que duplica la salida del trabajo con los trabajos activos del comando WRKACTJOB en tu navegador. Esta script simple coge la salida impresa de WRKACTJOB y la plasma en tu navegador.

El único nuevo concepto aquí es el operador (`), que ejecuta un comando del sistema y devuelve la salida como una secuencia. En el ejemplo 1 del código, la secuencia $output recoge la salida de WRKACTJOB.

(Nota: Como PHP se compila en OS/400 PASE o AIX los comandos del sistema se deben ejecutar como lo harías en el entorno OS/400 PASE. En este caso, debes introducir en la linea de comandos la sentencia "system WRKACTJOB". Los comandos disponibles directamente en OS/400 PASE como "ls" no necesitan el prefijo "system")

La salida del código de ejemplo 1 debe ser similar a la figura 1. Este script se mejora en la sección siguiente.

Script para visualizar los jobs de trabajos
El código de ejemplo 2 ofrece otro ejemplo que permite a los usuarios visualizar los logs de trabajo en un navegador. Los usuarios pueden seleccionar la información del log de trabajo que desean ver on-line o bien entrando la información necesaria (nombre de trabajo, nombre del usuario y número de trabajo) o seleccionando un trabajo de la lista de WRKACTJOB. No es necesario modificar el script.

La salida del código de ejemplo 2 debe parecerse a la figura 2, asumiendo que le darás al script un nombre de trabajo válido, un número y un usuario.

El código del script para visualizar los jobs de trabajos no es mucho más complicado que el script de WRKACTJOB. La principal diferencia es que ahora se utilizan funciones para agrupar el código según el propósito y para comprobar el valor del usuario. En este punto sin embargo, el valor usuario se comprueba solo para comprobar que se ha realizado una entrada. No se comprueba que la información sea correcta o que no sea maliciosa. (Nota: Para utilizar este script externamente, necesitas añadir código para verificar la entrada del usuario. Por lo menos, yo añadiría comprobaciones que aseguren que los nombres de usuario y de trabajo contienen menos de 10 caracteres, son alfanuméricos y que el número de trabajo está dentro de cierto rango numérico. Esto no es difícil de hacer con PHP. Sin estos cambios mínimos, yo no pondría este script de ejemplo en un sitio web externo.)

Mejorando los script WRKACTJOB y visualizar los jobs de trabajos
El código de ejemplo 1 y del ejemplo 2 son útiles, pero, como habrás notado, requieren incorporar manualmente la información del trabajo. Sin embargo, las buenas noticias, son que este proceso se puede automatizar integrando estos códigos de ejemplo. Analiza cada línea de la escritura de WRKACTJOB y localiza el nombre de trabajo, el número y el usuario. Entonces crea un enlace al ejemplo 2 con las variables completadas. Esto permite que el archivo nuevo produzca enlaces a los registros del job log donde sea apropiado (véase el ejemplo del código 3). Fíjate que han desaparecido los saltos de página y encabezados extra que aparecían en el ejemplo 1 del código. De hecho, han desaparecido las primeras 9 líneas del WRKACTJOB, junto con los encabezamientos, saltos de página y lo que es ahora el primer subsistema. Después de eso, la única salida debería ser trabajos o subsistemas. La nueva salida debe parecerse a la figura 3.

Trabajando con PHP
PHP es muy fácil de implementar, y, yo creo que puede simplificar muchas tareas de programación y administración de los iSeries. Ahora que has probado lo que PHP puede hacer, ya estas listo para ponerlo a trabajar para ti.

Veamos algunas cosas que puedes hacer con los dos ejemplos explicados. Puedes hacer:

  • Alternar los colores en las líneas de wrkactjob.php para hacer la lectura más fácil
  • Quitar información no deseada e innecesaria de la salida de WRKACTJOB.
  • Ver los ficheros de diario asociados (lo hacemos para nuestro OneWorld jde.log y los archivos de jdedebug.log)
  • Ver WRKACTJOB por subsistema - esto requeriría solo un pequeño cambio que permita a los usuarios especificar los subsistemas que desean ver
  • Destacar o mostrar solamente ciertas líneas según sus contenidos (ejemplo., Destacar cada trabajo que pertenece a determinado usuario, o determinado estado del trabajo)
  • Saltar automáticamente hacia o destacar los errores en un registro de trabajo
  • Solicitar la finalización de un trabajo

Puedes también crear scripts PHP que te permitan:

  • Ver ficheros de spool en el Web
  • Arrancar o parar subsistemas
  • Ver o editar ficheros de la base de datos

Con un poco de suerte, ahora estás evaluando implementar PHP en tu iSeries. Cuéntanos como te ha ido en nuestros foros Programación PHP contra el iSeries AS400 y Configuración PHP en iSeries AS400.

Febrero 2004

Este artículo es una traducción autorizada de una serie de 2 que realizó David Stockton para la revista eServer Magazine.
Copyright 2003 - David Stockton.
Este artículo apareció por primera vez en IBM eServer Computing Magazine en el mes de Octubre 2003.
Puedes ver la versión original de este artículo aquí

Lista de recursos PHP

Comentarios de usuarios

Nombre:
Mail:
Comentario:
 

Subir a la parte superior de la web

 

 

NUESTRA COMUNIDAD EN
ÚNETE Y.... ¡¡ PARTICIPA !!
Dossiers técnicos iSeries y AS400
- Seguridad
- Alta disponibilidad.
Nuestros links favoritos
- Tendencias tecnologías de la información
Expertos en tecnologías de la información, nos dan su punto de vista sobre las tendencias actuales y futuras
- Los últimos anuncios sobre hardware-software para iSeries AS400 realizados por IBM
- Freeware y shareware para el iSeries AS400
- Utilidades para el iSeries AS400 realizadas por profesionales
- Documentos. Trucos e ideas para resolver tus problemas
- Los manuales y links más interesantes del iSeries AS400

  Links patrocinados
  •  
  •  

[ Soy nuevo |   Profesionales |   AS qué |   Empresas |    Foros |   Recomiéndanos |    Productos ]
 
Recursos iSeries AS400. Es una web de: PUBLICACIONES HELP400, S.L. CIF:B-60-202827 Gran Vía de les Corts Catalanes, núm. 715, Entresuelo – 3ª - Barcelona - Tel.+34.932.310.049