
PHP Hypertext Pre-processor (Inicialmente PHP Tools, o, Personal Home Page Tools).
Fue creado por varias personas. Fue creado en el año de 1994 por Rasmus Lerdorf como un CGI escrito en C que permitía la interpretación de un número limitado de comandos.El sistema fue denominado personal home page tolos y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias páginas. Dada la aceptación del primer php y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI.


La sintaxis de PHP es muy similar a la de C o C++. Quizás lo más destacado ocurre a nivel semántico: la estructura es muy poco estricto, es decir, cuando creamos una variable en ella podemos almacenar el tipo de datos que queramos. Esto es muy flexible y cómodo para el desarrollador, aunque los errores que se cometen pueden ser mucho más graves y difíciles de corregir. Las posibilidades del interprete para detectar incompatibilidades entre variables se reducen mucho y pueden ocurrir cosas extrañas en determinadas circunstancias si no tenemos cuidado.
Podemos incluir el lenguaje PHP dentro del código HTML, por medio de etiquetas.

Office Viewer Component
phpDesigner 7.2.5
Editor de PHP de agradable aspecto y gran número de funcionalidades
PHP Coder R2 Prerelease 3
Editor de PHP gratuito, muy completo y de múltiples funcionalidades
HateML Pro 1.1.05
Potente editor XHTML y PHP con depurador integrado
Rapid PHP Editor 2007 8.2.0.79
Completísimo editor PHP con soporte también para HTML, CSS, etc.
DzSoft PHP Editor 4.2.4.4
Completo editor de programación en PHP

PHPEdit 1.0.4.82
Potente editor de programación especializado en PHP
NuSphere PHPEd 5.8
Editor de programación especializado en PHP
Hydra PHP 1.7
Completo y funcional editor de programación en PHP y HTML
PHPEdit 2.10.0.4616 beta
Potente editor de programación especializado en PHP
Easyscript For PHP 0.6
Práctico editor de PHP con auto-completado de comandos


Ejercicio 4.1: Concatena dos cadenas con el operador punto (.) e imprimir su resultado.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ejercicio 4.1</title>
</head>
<body>
<?php
$ini = "Hola ";
$fin = " a todos";
$todo = $ini.$fin;
echo $todo;
?>
</body>
</html>

Ejercicio 4.2: Hacer un programa que sume dos variables que almacenan dos números distintos.
<html>
<head>
<title>ejercicio 4.2</title>
</head>
<body>
<?php
$n1=1;
$n2=2;
$suma=$n1+$n2;
echo "suma = ".$suma. "<br>";
echo "$n1+$n2";
?>
</body>
</Html>
Ejercicio 4.3: hacer un programa que muestre en pantalla información de PHP con la función

phpinfo(). Muestre la información centrada horizontalmente en la pantalla.
<Html>
<Head>
<Title>ejercicio 4.3</title>
</head>
<Body>
<Center>
<?php
Echo phpinfo();
?>
</center>
</body>
</HTML>
Ejercicio 4.4: Mostrar en pantalla una tabla de 10 por 10 con los números del 1 al 100
<Html>
<Head>
<Title>ejercicio 4.4</title>
</head>
<Body>
<? Php
Echo "<table border=1>";
$n=1;
For ($n1=1; $n1<=10; $n1++)
{
Echo "<try>";
For ($n2=1; $n2<=10; $n2++)
{
echo "<tv>", $n, "</td>";
$n=$n+1;
}
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>

Ejercicio 4.5: ídem a 4.4 anterior, pero colorear las filas alternando gris y blanco. Además, el
tamaño será una constante: define(TAM, 10)
<html>
<head>
<title>ejercicio 4.5</title>
</head>
<body>
<?php
define(TAM,10);
echo "<table border=1>";
$n=1;
for ($n1=1; $n1<=TAM; $n1++)
{
if ($n1 % 2 == 0)
echo "<tr bgcolor=#bdc3d6>";
else
echo "<tr>";
for ($n2=1; $n2<=TAM; $n2++)
{
echo "<td>", $n, "</td>";
$n=$n+1;
}
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
Ejercicio 4.6: mostrar una tabla de 4 por 4 que muestre las primeras 4 potencias de los números del
uno 1 al 4 (hacer una función que las calcule invocando la función pow). En PHP las funciones hay
que definirlas antes de invocarlas. Los parámetros se indican con su nombre ($cantidad) si son por
valor y antecedidos de & (&$cantidad) si son por referencia.
<Html>
<Head>
<Title>ejercicio 4.6</title>
</head>
<Body>
<?php
Define (TAM, 4);
function potencia ($v1, $v2)
{
$rdo= pow($v1, $v2);
return $rdo;
}
echo "<table border=1>";
for ($n1=1; $n1<=TAM; $n1++)
{
echo "<tr>";
for ($n2=1; $n2<=TAM; $n2++)
echo "<td>". potencia($n1,$n2). "</td>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
Ejercicio 4.7: hacer un programa que muestre en una tabla de 4 columnas todas las imágenes de el
directorio "fotos". Para ello consulte el manual (en concreto la referencia de funciones de
directorios). Suponga que en el directorio sólo existen fotos.
<html>
<head>
<title>ejercicio 4.7</title>
</head>
<body>
<?php
if ($gestor = opendir('fotos'))
{
echo "<table border=1>";
echo "<tr>";
$i=0;
while (false !== ($archivo = readdir($gestor)))
{
if ($archivo!="." && $archivo!="..")
{
if ($i==4)
{
$i=0;
echo "</tr>";
echo "<tr>";
}
$i++;
echo "<td>";
echo "<a href=fotos/$archivo><img src=fotos/$archivo>
</a>";
echo "</td>";
}
}
echo "</tr>";
echo "</table>";
closedir($gestor);
}
?>
</body>
</html>
Ejercicio 4.8: ídem al anterior, pero que muestre las fotos en 100x100 y que al pulsar abra la foto
entera. Compruebe que sólo muestra fotos con extensión .jpg, .png, bmp o .gif (haga una función
que lo compruebe usando las expresiones regulares como aparecen en el manual).
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" httpequiv="content-type">
<title>ejercicio 4.8</title>
</head>
<body>
<?php
echo "<h1>Tabla de Fotos con Enlace</h1>";
function valida_foto($fotos)
{
$rdo=0;
if (ereg("[Jj][Pp][Gg]$", $fotos)) rdo=1;
if (ereg("[Gg][Ii][Ff]$", $fotos)) rdo=1;
if (ereg("[Pp][Nn][Gg]$", $fotos)) rdo=1;
if (ereg("[Bb][Mm][Pp]$", $fotos)) rdo=1;
return $rdo;
}
echo "<table border=1>";
$puntero = opendir('fotos');
$i=1;
while (false !== ($foto = readdir($puntero)))
{
if ($foto!="." && $foto!=".." && valida_foto($foto))
{
if ($i==1)
echo "<tr>";
echo "<td><a href='fotos/$foto'>”;
echo ”<img src='fotos/$foto' width=100 height=100></img>”;
echo “</a></td>";
if ($i==4)
{echo "</tr>"; $i=0;}
$i++;
}
}
closedir($puntero);
echo "</table>";
?>
</body>
</html>
Ejericio 4.9: ídem al anterior, pero que por cada foto tenga una miniatura. Para la foto playa.jpg la
miniatura será MINI-playa.jpg
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" httpequiv="content-type">
<title>ejercicio 4.9</title>
</head>
<body>
<?php
echo "<h1>Galeria de imagenes con thumbnails</h1>";
function valida_foto($fotos)
{
$rdo=0;
if (ereg("[Jj][Pp][Gg]$", $fotos)) rdo=1;
If (ereg("[Gg][Ii][Ff]$", $fotos)) rdo=1;
ir (ereg("[Pp][Nn][Gg]$", $fotos)) rdo=1;
ir (ereg("[Bb][Mm][Pp]$", $fotos)) rdo=1;
return $rdo;
}
echo "<table border=1>";
$puntero = opendir('fotos');
$i=1;
while (false !== ($foto = readdir($puntero)))
{
if ($foto!="." && $foto!=".." && valida_foto($foto))
{
if ($i==1)
echo "<tr>";
echo "<td><a href='fotos/tumbs/MINI-$foto'>”;
echo ”<img src='fotos/$foto' width=100 height=100></img>”;
echo “</a></td>";
if ($i==4)
{echo "</tr>"; $i=0;}
$i++;
}
}
closedir($puntero);
echo "</table>";
?>
</body>
</html>
Ejercicio 4.10: ídem al anterior, pero que si no existe la miniatura de una foto debe de crearla. Para
generar la miniatura se usa el programa convert (hay que invocarlo en línea de comandos desde
PHP son la función system).
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" httpequiv="content-type">
<title>ejercicio 4.10</title>
</head>
<body>
<?php
echo "<h1>Galeria de imagenes con thumbnails</h1>";
function valida_foto($fotos)
{
$rdo=0;
if (ereg("[Jj][Pp][Gg]$", $fotos)) rdo=1;
if (ereg("[Gg][Ii][Ff]$", $fotos)) rdo=1;
if (ereg("[Pp][Nn][Gg]$", $fotos)) rdo=1;
if (ereg("[Bb][Mm][Pp]$", $fotos)) rdo=1;
return $rdo;
}
function crea_tumbs($foto)
{
if (!is_dir('fotos/tumbs'))
mkdir ('fotos/tumbs', 0777);
if (!is_file('fotos/tumbs/MINI-$foto'))
system ("convert -sample 40x40 /fotos/$foto /fotos/tumbs/MINI-
$foto");
}
echo "<table border=1>";
$puntero = opendir('fotos');
$i=1;
while (false !== ($foto = readdir($puntero)))
{
if ($foto!="." && $foto!=".." && valida_foto($foto))
{
crea_tumbs($foto);
if ($i==1)
echo "<tr>";
echo "<td><a href='fotos/tumbs/MINI-$foto'>”;
echo ”<img src='fotos/$foto' width=100 height=100></img>”;Programación en PHP a través de ejemplos 14
echo “</a></td>";
if ($i==4)
{echo "</tr>"; $i=0;}
$i++;
}
}
closedir($puntero);
echo "</table>";
?>
</body>
</html>
Ejercicio 4.11: PHP desde línea de comandos. Suponga que tenemos un servidor que no soporta
PHP. Genere una página estática con la galería de fotos del ejercicio anterior.
Las razones para usar PHP generando contenidos estáticos pueden ser, además de la indicada
anteriormente: para facilitar la indexación de contenidos (con spiders), para cargar menos el
servidor, para realizar una página que funciona off-line (por ejemplo, una recopilación de
información para grabarla en CD/DVD), etc
Simplemente abría que invocar, desde la línea de comandos php ejercicio4.10.php > pag.html
Ejercicio 4.12: vectores. Almacene en un vector los 10 primeros número pares. Imprímalos cada
uno en una línea (recuerde que el salto de línea en HTML es <BR>).
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" httpequiv="content-type">
<title>ejercicio 4.12</title>
</head>
<body>
<?php
for ($i=0;$i<10;$i++)
$v[$i]=$i*2;
for ($i=0;$i<10;$i++)
echo “$v[$i]<br>”;
?>
</body>
</html>
Ejercicio 4.13: Imprima los valores del vector asociativo siguiente usando la estructura de control
foreach:
$v[1]=90;
$v[30]=7;
$v['e']=99;
$v['hola']=43;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" httpequiv="content-type">
<title>Ejercicio 4.13</title>
</head>
<body>
<?php
$v[1]=90;
$v[30]=7;
$v['e']=99;
$v['hola']=43;
foreach ($v as $indice => $valor)
{
echo “El elemento de indice $indice vale $valor <br>”;
}
?>
</body>
</html>Programación en PHP a través de ejemplos