martes, 18 de octubre de 2011

PHP


PHP
PHP Hypertext Pre-processor (Inicialmente PHP Tools, o, Personal Home Page Tools).
http://www.desarrolloweb.com/articulos/images/diagrama-php.gifFue 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.







http://www.ciberaula.com/fotos/curso/masterphp/acercade/php_256.png
sintaxis




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.





http://www.blogdetecnologia.com/wp-content/uploads/windows_vista.jpg   
PROGRAMAS EDITORES DE PHP
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



http://www.blogdetecnologia.com/wp-content/uploads/windows_vista.jpg
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










http://www.maestrosdelweb.com/images/editorial/phpmysqlap_3_copy1.gif

EJEMPLOS DE PÁGINAS ECHAS EN PHP
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>
http://www.webtaller.com/images/contenidos/lecciones/como-publicar-paginas-php-internet-information-services_instphp6.jpg
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
http://sisinfo.itc.mx/ITC-APIRGG/Fundamentos_PHP/Imagenes-Sitio/mini_iexplorer.gif
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>
http://www.agapea.com/Ra-Ma-Libreria-y-Editorial-Microinformatica/PHP-5-a-traves-de-ejemplos--i0n193299.jpg 
 <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>
http://www.adictosaltrabajo.com/tutoriales/depurarEnPHPEclipsePDTXdebug/eclipsePDTFirefoxBrowser.png

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++)
 http://biblio2.ugb.edu.sv/shared/imagen.php?id=11605 
 {
      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>
http://www.maestrosdelweb.com/images/instphp3.jpg 
<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