Escolar Documentos
Profissional Documentos
Cultura Documentos
Programacin Web
Equipo numero 5:
30 de
septiembre de 2011.
Cuando nosotros seleccionamos un enlace hipertexto, en realidad lo que pasa es que establecemos una peticin de un archivo HTML residente en el servidor (una computadora que se encuentra continuamente conectado a la red) el cual es enviado e interpretado por nuestro navegador (el cliente). As pues, podemos hablar de lenguajes de lado servidor que son aquellos lenguajes que son reconocidos, ejecutados e interpretados por el propio servidor y que se envan al cliente en un formato comprensible para l, por ejemplo: ASP, PHP, JSP. Por otro lado, los lenguajes de lado cliente (entre los cuales no slo se encuentra el HTML sino tambin el Java y el JavaScript los cuales son simplemente incluidos en el cdigo HTML) son aquellos que pueden ser directamente "digeridos" por el navegador y no necesitan un pretratamiento.
Cada uno de estos tipos tiene por supuesto sus ventajas y sus inconvenientes. As, por ejemplo, un lenguaje de lado cliente es totalmente independiente del servidor, lo cual permite que la pgina pueda ser albergada en cualquier sitio sin necesidad de pagar ms ya que, por regla general, los servidores que aceptan pginas con scripts de lado servidor son en su mayora de pago o sus prestaciones son muy limitadas. Inversamente, un lenguaje de lado servidor es independiente del cliente por lo que es mucho menos rgido respecto al cambio de un navegador a otro o respecto a las versiones del mismo.
trivial. Hay que tener en cuenta las aplicaciones de las que dispone el Sistema Operativo y sus costos.
Si pensamos desarrollar en .NET este solo es soportado por windows y los costos de hospedaje son mas caros que los que soportan Linux. Fases de desarrollo de una web Para elegir las herramientas a utilizar, antes debemos identificar las fases del proceso que forman el ciclo de vida de un desarrollo web.
Diseo: consiste en crear esbozos de la web final mediante una herramienta grfica, como Photoshop Maquetacin HTML/CSS: consiste en convertir los esbozos creados en la fase anterior en plantillas HTML, su respectiva hoja de estilos, y las imgenes usadas. Es posible saltarse la fase anterior para comenzar directamente con esta fase, dependiendo de si dominamos herramientas como Photoshop o no. Programacin cliente: consiste bsicamente en Javascript. Existen muchas librerias de distribucin libre como JQUERY que nos aportan verdaderas joyas para el desarrollo. Programacin servidor: en esta fase, que se desarrolla junto con la anterior, crearemos la aplicacin web en un lenguaje de servidor, como puede ser PHP, ASP .NET, Python, Perl, Java, etc. Depuracin: esta fase enlaza la anterior con la siguiente, y es donde haremos las pruebas unitarias, aserciones, trazas, etc. Pruebas en local: en nuestro servidor local haremos todas las pruebas posibles. Por ejemplo usando wampServer Subir archivos al hosting: Dependiendo del hosting, podremos usar FTP, SSH, aconsejo usar cuteFTP es una herramienta confiable y versatil. Pruebas en hosting: realizaremos las ltimas pruebas en el servidor del hosting para comprobar que el cambio de servidor no ha afectado a nada. Para evitar problemas, nuestro servidor local debe tener exactamente la misma configuracin que el servidor del hosting. Recuerde probar que sus cdigos sean compatibles al menos con Firefox, Safari e Internet explorer
En general podemos usar comercialmente la suite de Adobe que incluye a Dreamwever y sus herramientas de edicin un servidor FTP, adems de validar nuestros cdigos javascript y css. Con el inconveniente de ser una herramienta muy cara. En contra parte, va versin Joomla! edition de kademar Linux es la adaptacin de la versin de Escritorio DVD (Leo) 4.9.1 con la inclusin de los programas necesarios para trabajar con el gestor de contenidos Joomla!.
En esta edicin se incluye instalado el gestor de contenidos Joomla, junto con los programas necesarios para su funcionamiento totalmente instalados y configurados. Es posible aprender a usar Joomla! sin necesidad de buscar un servidor de hosting para crear pginas web. Est funcionando en local y no se tiene que pelear con la instalacin de todo lo necesario: base de datos MySql, phpmyadmin, apache.... etc. Todo est ya instalado y configurado, plenamente funcional para usarlo inmediatamente.
3.3 Operadores
Los operadores son componente esencial de cualquier lenguaje de programacin. Con ellos podemos asignar, unir, cambiar o comparar valores de datos, cambiar el flujo del programa, etc. Los operadores son smbolos que representan operaciones sobre un valor. Vamos a ver a continuacin los operadores admitidos por PHP agrupados segun su utilidad.
Operador de asignacin
El smbolo = permite asignar valores a variables:
Operador de concatenacin
Usando el smbolo del . podemos unir valores:
<?php $nombre = "jorge"; $apellido = "prez"; $id = $nombre." ".$apellido; // suma los dos valores mas un espacio ?>
<?php echo = "uno, dos, tres" .= "cuatro, cinco, seis"; // imprime "uno, dos, tres, cuatro, cinco, seis" $id = "jorge";
Operadores aritmticos
Los simbolos + - / * permiten realizar las operaciones de suma, resta, divisin y multiplicacin. El smbolo % permite hallar el resto de una divisin.
aritmeticos
evaluar
$a $a valor y
en
uno despus $a en
despus
devuelve $a en devuelve
incrementa uno y
de
despus
valor de $a:
Operadores de Comparacin
$a == $b
(igualdad).
Cierto
si
$a
es
igual
$b.
$a === $b $a $a < !=
(desigualdad). que).
Cierto si $a
si es
$a
no
es
igual menor
a que
$b. $b.
$b
(menor
Cierto
estrictamente
$a > $b (mayor que). Cierto si $a es estrictamente mayor que $b. $a <= $b (menor o igual
que).
Cierto
si
$a
es
menor
igual
que
$b.
comparar
evaluar
Por defecto todos los valores que introduzcas sern considerados strings (cadenas de carcteres) aunque esten formados solo por nmeros. Si deseas forzar que el valor se compare como un integer (nmero entero), introduce el nmero (no letras!) y marca el checkbox junto a ese campo. NOTAS: el operador = no compara sino que ASIGNA un valor a una variable: $password="miclave" no compara si la variable password tiene el valor miclave sino que le asigna ese contenido. el operador == compara dos valores y devuelve TRUE si son iguales: $password=="miclave" se cumple si el valor de $password es miclave. El operador === da TRUE si los dos valores son adems de iguales, idnticos. Se compara no solo el contenido, sino el tipo de variable: 123 == 123: TRUE (si son dos valores numericos). "123" === 123: FALSE (mismo valor, pero el primero es una cadena, el segundo un nmero). Si deseas probar === introduce dos numeros iguales en el formulario. Para que se vea la diferencia marca el checkbox de uno de los campos para que pase el valor como integer.
Operador de ejecucin
PHP soporta un operador de ejecucin: el apstrofe invertido (``). PHP intentar ejecutar la instruccin contenida dentro de los apstrofes invertidos como si fuera un comando del shell; y su salida devuelta como el valor de esta expresin (i.e., no tiene por qu ser simplemente volcada como salida; puede asignarse a una variable). Ejemplo:
Es equivalente a la funcin shell_exec y por defecto est inhabilitado su uso si php esta configurado para ejecutarse en safe_mode
Operadores Lgicos
$a $a and or $b $b
Y: O:
Cierto
si
tanto si
$a $a
como o $b
$b
son son
ciertos. ciertos.
Cierto
$a xor $b ! $a
O exclusiva: Cierto si $a es cierto o $b es cierto, pero no ambos a la vez. Negacin: Cierto si $a no es cierto.
$a $a
&& ||
$b $b
Y: O:
Cierto
si
tanto si
$a $a
como o $b
$b
son son
ciertos. ciertos.
Cierto
La razn de las dos variaciones de "y" y "o" es que operan con distinta precedencia
$a ^ $b Xor ("o exclusiva") Se activan los bits que estn activos en $a o en $b pero no en
ambos
~ $a
la estn activos en
vez. $a.
Desplazamiento a la izquierda Desplaza los bits de $a, $b posiciones hacia la izquierda (por aritmtica binaria, cada posicin desplazada equivale a multiplicar por dos el valor de $a)
$a << $b
Desplazamiento a la derecha Desplaza los bits de $a, $b posiciones hacia la derecha (por aritmtica binaria, cada posicin desplazada equivale a dividir entre dos el valor de $a)
$a >> $b
ejemplo:
<?php function hexColor($color) { return dechex(($color[0]<<16)|($color[1]<<8)|$color[2]); } $col[0] = 25; $col[1] = 255; $col[2] = 55; print hexColor($col); ?>
3.4 Sentencias.
PHP Al ser un lenguaje de script, se programa mediante simples sentencias o frases (no compiladas), que son interpretadas por el motor PHP instalado en el servidor,
devolviendo al visitante de la pgina el texto resultante. Esto quiere decir que en el cdigo fuente de la pgina final solo vers html, nada de php. Insertando PHP en pginas html Nuestras sentencias PHP pueden ir mezcladas con el cdigo HTML. Para que el servidor las reconozca como lo que son, y las ejecute, necesitaremos en primer lugar indicarle que es un archivo que contiene cdigo ejecutable, lo que conseguimos sustituyendo la extensin habitual htm o html por php: pagina.php. Y en segundo lugar separamos en el cuerpo de la pgina lo que es html y lo que es cdigo php ejecutable marcando el inicio y final de este mediante etiquetas de inicio y cierre:
<?php ..... ?> (modo normal) <? ..... ?> (modo abreviado) <% ..... %> (modo asp, deshabilitado por defecto)
ejemplo
php</h3>
t/man/php/index.php
Sentencia break
La sentencia break escapa de la estructuras de control iterantes (bucles) actuales for, while, o switch. La sentencia break acepta un parmetro opcional, el cual determina cuantas estructuras de control hay que escapar. Intenta averiguar el comportamiento de los siguientes programas:
Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrs disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografa, etc....
Sentencia continue
La sentencia continue se usa dentro de la estructura del bucle para saltar el resto de la iteracin actual del bucle y continuar la ejecucin al comienzo de la siguiente iteracin. Acepta un parmetro opcional, el cual determina cuantos niveles (bucles) hay que saltar antes de continuar con la ejecucin.
Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrs disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografa, etc....
Sentencia switch
La sentencia switch es similar a una serie de sentencias IF en la misma expresin. En muchas ocasiones, se quiere comparar la misma variable (o expresin) con muchos valores diferentes, y ejecutar una parte de cdigo distinta dependiendo del valor de dicha variable (o expresin). Para eso sirve la sentencia switch. La sintaxis de la sentencia switch es la siguiente: switch(expr){ case break; case break; . . . default: sentencia()s; }
Veamos cmo se ejecuta la sentencia switch: cuando se encuentra una sentencia case con un valor igual al valor de la expresin switch, PHP empieza a ejecutar las sentencias correspondientes a dicho case y contina ejecutando las sentencias hasta el final del bloque switch (en el caso de que no haya ningn break) o hasta la primera vez que encuentre una sentencia break.
Nota: Si no se escribe una sentencia break al final de una lista de sentencias case, PHP seguir ejecutando las sentencias del siguiente case.
Los siguientes dos ejemplos son dos modos distintos de escribir la misma cosa, uno usa una serie de sentencias if, y el otro usa la sentencia switch:
ejecutar
ver
cdigo
fuente
Aqu, si $i es igual a 0, PHP ejecutara todas las sentencias echo. Si $i es igual a 1, PHP ejecutara las dos ltimas sentencias echo y slo si $i es igual a 2, se obtendra la conducta "esperada" mostrandose "i es igual a 2". Es importante no olvidar las sentencias break.
Nota: La lista de sentencias de un case puede estar vaca, lo cual simplemente pasa el control a la lista de sentencias del siguiente case.
Este ejemplo mostrara por pantalla "i es menor que 3, pero no negativo", ya que, al ser $i=0 y estar vaca la lista de sentencias del case 0, pasa el control a la lista de sentencias del case 1, que tambin est vaca y por tanto salta la ejecucin a la sentencia del case 2. ejecutar ver cdigo fuente
Nota: El case default El case default es un case especial: PHP ejecutar las sentencias del case default cuando el valor de la expresin del switch no coincida con ninguno de los valores de los cases anteriores. El case default puede o no aparecer, pero si aparece ha de estar en ltimo lugar.
Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrs disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografa, etc....
cambiar abrir-llave ({) por dos puntos (:) y cambiar cerrar-llave (}) por endif;, endwhile;, endfor;, o endswitch;, respectivamente.
3.5 arreglos.
Una particularidad de las variables es la capacidad de crear variables que contengan mltiples valores. Estamos hablando de los arrays o arreglos. Tambin son conocidos como matrices Se comportan casi como una variable normal, es decir, comienzan con el signo $, se nombran con letras, nmeros y "_", admiten los mismos operadores, pero se diferencian en que almacenan ms de un valor:
Al requerir el valor de la variable, hay que especificar cul de esos valores es el que se quiere obtener. Para esto, hay que indicar el nmero de dicho valor entre signos [ y ]. Por ejemplo:
$variable1[2];
Para definir una variable como array, hay que utilizar la funcin Array(). Si no se especifica ningn parmetro dentro de los parntesis, crer un array vaco. De lo contrario establecer los valores que contendr el array:
Array(); vaco
Tambin existen los arrays o arreglos etiquetados, es decir, que en lugar de tener asignado un nmero cada valor del array, tienen asignado un otro valor string:
$variable2 "uno" "dos" "tres" => valor3 => => valor1 valor2
$variable2["dos"];
y si se quiere crear el array como etiquetado desde el principio con la misma funcin Array(), se debe hacer de la siguiente manera:
Las
variables
predefinidas
Las variables predefinidas o del servidor son variables que estn definidas por php y que proporcionan informacin
sobre el servidor o el cliente. En ellas est almacenada, por ejemplo, la IP del cliente, su navegador y hasta el lenguaje preferido por el usuario. Tambien las hay para acceder a los contenidos GET y POST, y para obtener informacin del servidor, como sistema operativo y dems. Estas variables comienzan con $_ y son arrays. A saber (solo las que trabajaremos, las ms utilizadas):
$_SERVER Informacin $_POST Variables $_GET Variables $_COOKIES $_SESSION Variables $_FILES Archivos (a tratar)
y el el (a
$_POST y $_GET son matrices etiquetadas idnticas a las que tratamos hace un momento. Las etiquetas son los
nombres de los campos y cada una tiene su respectivo valor. Por ejemplo:
echo $_POST["nombre"];
La variable $_SERVER es un array etiquetado. Algunas de las etiquetas son las siguientes: la URL del acript actual ("PHP_SELF"), IP del servidor ( "SERVER_ADDR"), IP del cliente ("REMOTE_ADDR"), nombre del navegador ("HTTP_USER_AGENT"), lenguaje preferido ("HTTP_ACCEPT_LANGUAGE"), tipos de archivos que soporta el navegador ("HTTP_ACCEPT"), nombre del host ("HTTP_HOST"), ruta de acceso al script en el servidor ("PATH_TRANSLATED") y ms. Puedes consultar en
El uso de ARRAYS es una de las grandes fortalezas del lenguaje PHP. Ningn otro lenguaje lo haba facilitado tanto ni haba aportado tantas posibilidades y funciones. Gracias a su amplia galera de funciones y a los mtodos que se han implementado en este lenguaje, manejar arreglos, incluso multidimensionales, es algo tan facil como era el manejar cadenas. No obstante, siempre es necesario "agarrarle la idea" ya que en un principio puede resultar confuso para los neofitos. Por eso publicamos aqui una gua rpida para conocer el uso y las funciones disponibles en este amigable lenguaje.
//Para declarar una variable como un array sencillo $a = array();
Una manera prctica de ver el contenido de una variable de tipo array es con la funcin var_dump. Para usar esta funcin lo hacemos de la siguiente manera:
echo "<pre>"; var_dump($a); echo "</pre>";
LA funcin var_dump() nos sirve para propsitos de depuracin, para ver el contenido de nuestros arrays cuando notamos que algo no funciona. Es recomendable encerrarlo entre los TAGS (pre) y (/pre) para poder ver ms claramente el resultado. En el ejemplo anterior tendramos la siguiente salida:
Salida del programa:
array(5) { [0]=> string(4) "Maiz" [1]=> string(5) "Arroz" [2]=> string(3) "Pan" [3]=> string(8) "Frijoles" [4]=> string(6) "Azcar" }
Ntese que el array delcarado tiene cinco elementos, y estos van del elemento cero al cuatro (0-4) tal como nos lo muestra el resultado del var_dump.
A continuacin utilizaremos el mtodo foreach para recorrer todo el arreglo y mandar a la pantalla los elementos que contiene.
//Para declarar una variable como array y ponerle elementos $a = array("Maiz","Arroz","Pan","Frijoles","Azcar"); //Para mostrar en la salida el array con los elementos foreach($a as $v) { echo "$v"; echo "<br>";
Con foreach le decimos que recorra el array $a y en cada ciclo nos pondr cada valor del arreglo dentro de la variable $v.
Salida del programa:
Tambien se pudo utilizar un ciclo for desde 0 hasta 4. Pero el foreach es ms practico porque no necesitamos conocer el nmero de elmentos del array. El programa utilizando un ciclo for quedara de la siguiente manera:
for($i=0 ; $i<count($a); $i++) { echo $a[$i]; echo "<br>"; }
Modificar
el
nmero
de
elementos
de
un
array
Ahora vamos a ver varios ejemplos mediante los cuales nuestros arrays pueden aumentar o reducir el nmero de casillas disponibles.
Reducir array_slice()
el
tamao
de
un
array
Para disminuir el nmero de casillas de un arreglo tenemos varias funciones. Entre ellas, array_slice() la utilizamos cuando queremos recortar algunas casillas del arreglo, sabiendo los ndices de las casillas que deseamos conservar.
Recibe tres parmetros. El array, el ndice del primer elemento y el nmero de elementos a tomar, siendo este ltimo parmetro opcional. En el ejemplo siguiente tenemos un array con cuatro nombres propios. En la primera ejecucin de array_slice() estamos indicando que deseamos tomar todos los elementos desde el ndice 0 (el principio) hasta un nmero total de 3 elementos. El segundo array_slice() indica que se tomen todos los elementos a partir del ndice 1 (segunda casilla). <? $entrada //modifico $salida //muestro foreach
array
("Miguel",
"Pepe", el
"Juan",
"Julio",
array_slice el ($salida
($entrada, as
0,
echo echo //modifico $salida //muestro foreach ?> Tendr Miguel Pepe Juan Pepe Juan
$actual
= ($salida echo
($salida,
como
salida:
array_shift()
Esta funcin extrae el el primer elemento del array y lo devuelve. Adems, acorta la longitud del array eliminando el elemento que estaba en la primera casilla. Siempre hace lo mismo, por tanto, no recibir ms que el array al que se desea eliminar la primera posicin. En el cdigo siguiente se tiene el mismo vector con nombres propios y se ejecuta dos veces la funcin array_shift() eliminando un elemento en cada ocasin. Se imprimen los valores que devuelve la funcin y los elementos del array resultante de eliminar la primera casilla.
<? $entrada
array
("Miguel", la =
"Pepe",
"Juan",
"Julio",
funcin echo
echo //quito la primera casilla, que ahora sera la segunda del $salida = array_shift echo "La funcin devuelve: " . $salida //muestro el foreach ($entrada as echo $actual . ?> Da La Pepe Juan Julio Pablo La Juan Julio Pablo funcin como devuelve:
resultado: Miguel
funcin
devuelve:
Pepe
unset()
Se utiliza para destruir una variable dada. En el caso de los arreglos, se puede utilizar para eliminar una casilla de un array asociativo (los que no tienen ndices numricos sino que su ndice es una cadena de caracteres). Veamos el siguiente cdigo para conocer cmo definir un array asociativo y eliminar luego una de sus casillas. <? $estadios_futbol = array("Barcelona"=> "Nou Camp","Real Madrid" => "Santiago Bernabeu","Valencia" => "Mestalla","Real Sociedad" => "Anoeta");
el
al
real
madrid Madrid"]);
//mostramos foreach echo $indice ?> La Barcelona Real Valencia Real Barcelona Valencia Real
otra $actual
ser
la Nou Santiago
---
-Nou ---
Sociedad
Aumentar
el
tamao
de
un
array
Tenemos tambin a nuestra disposicin varias funciones que nos pueden ayudar a aumentar el nmero de casillas de un arreglo.
array_push()
Inserta al final del array una serie de casillas que se le indiquen por parmetro. Por tanto, el nmero de casillas del array aumentar en tantos elementos como se hayan indicado en el parmetro de la funcin. Devuelve el nmero de casillas del array resultante. Veamos este cdigo donde se crea un arreglo y se aaden luego tres nuevos valores. <? $tabla
array
("Lagartija", el "Gorrin",
"Araa", tamao
"Perro",
"Gato",
//aumentamos array_push($tabla,
del "Paloma",
foreach echo ?> Da Lagartija Araa Perro Gato Ratn Gorrin Paloma Oso como
($tabla $actual
as .
$actual) "<br>";
resultado
esta
salida:
array_merge()
Ahora vamos a ver cmo unir dos arrays utilizando la funcin array_merge(). A sta se le pasan dos o ms arrays por parmetro y devuelve un arreglo con todos los campos de los vectores pasados. En este cdigo de ejemplo creamos tres arrays y luego los unimos con la funcin array_merge() <? $tabla $tabla2 $tabla3
array = =
("Lagartija", array el
"Araa", "Perro", "Gato", "Ratn"); array ("12","34","45","52","12"); ("Sauce","Pino","Naranjo","Chopo","Perro","34"); del $tabla2, as $actual . array $tabla3); $actual) "<br>";
tamao array_merge($tabla,
($resultado echo
12 Sauce Pino Naranjo Chopo Perro 34 Una ltima cosa. Tambin pueden introducirse nuevas casillas en un arreglo por los mtodos habituales de asignar las nuevas posiciones en el array a las casillas que necesitemos. En arrays normales array se hara as:
$tabla = $tabla[3]="Algarrobo"; En
("Sauce","Pino","Naranjo");
asociativos: "Anoeta");
3.7 Funciones
Una funcin es el trmino para describir una secuencia de rdenes que hacen una tarea especfica de una aplicacin ms grande. Una funcin de usuario en PHP no es ms que una porcin de cdigo que podemos llamar en cualquier momento. De un lado, al dividir nuestro cdigo en funciones podemos aislar y perfeccionar cada una de sus funcionalidades; de otro lado, podemos reutilizar este cdigo, ya que una funcin puede ser llamada cuantas veces la necesitemos. Para definir una funcin debemos usar la palabra reservada function. Para llamar la funcin basta con invocar su nombre. Las declaraciones de funciones generalmente son especificadas por:
Nombre de la funcin con el que se identifica y se distingue de otras. No podr haber otra funcin, ni procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programacin orientada a objetos). Un tipo de dato de retorno. Tipo de dato del valor que la funcin devolver al terminar su ejecucin. Una lista de parmetros. Especificacin del conjunto de argumentos (pueden ser cero, uno o ms) que la funcin debe recibir para realizar su tarea. El cdigo u rdenes de procesamiento. Conjunto de rdenes y sentencias que debe ejecutar la funcin.
En las lneas 2 al 4 se hace la declaracin de la funcin La palabra reservada return regresa el valor de la funcin lnea 3 En la lnea 11 se hace un llamado a la funcin cF pasandole como parmetro una variable
cF( 1.8 *
$grados $grados +
){ 32;
$g = $_POST['centigrados'];
if(isset($_POST['convertir']) and $_SERVER['REQUEST_METHOD'] == 'POST' and !empty($g) ) { echo "<p class='centrado'>$g grados centigrados equivalen a "; echo cF($g)." grados Fahrenheit</p>"; unset($_POST['centigrados']); } else {
3.7. Ejemplos
Redireccionamiento de los visitantes a las pginas especficas en su idioma. Conocer los idiomas seleccionados en el navegador de nuestros visitantes puede ser un dato muy importante que puede utilizar para redirigir al usuario a una pgina especfica en el idioma correspondiente, o bien para mostrar informacin especfica dirigida al usuario (como por ejemplo el anuncio ms adecuado) Si deseamos que nuestro sitio sea bilinge en ingls y espaol, bajo el supuesto que el espaol y el ingls son los dos idiomas ms utilizado por nuestros visitantes (nuestro idioma por defecto ser espaol).
<? if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2) == 'es'){ include("paginaEspanol.html"); } else { include("paginaIngles.html"); } ?>
Ejecutar Procesando Formularios Para conocer mediante que mtodo recibimos el formulario en PHP usamos la variable de servidor $_SERVER['REQUEST_METHOD']. El siguiente cdigo muestra su uso.
<?php if ($_SERVER['REQUEST_METHOD'] == 'GET'){ echo 'Usaste GET para enviar los datos'; } else if($_SERVER['REQUEST_METHOD'] == 'PUT'){ echo 'Usaste PUT para enviar los datos';
} ?>
Eliminar espacios
La funcim trim elimina los espacios en blanco de la cadena. Observe que est funcin solo elimina los espacios en blanco de los extremos izquierdo y derecho de la cadena, ignorando los espacios en blanco internos (Lnea 9). la funcin strtoupper convierte la cadena en maysculas ucfirst convierte el primer carcter de una cadena a mayscula, si el carcter es alfabtico. la funcin strlower convierte la cadena en minsculas (Lnea 3). ereg_replace busca cualquier ocurrencia del patrn en la cadena y la reemplaza por otra. En nuestro caso, cambia todo espacio en blanco por vacio (Lnea 4).
<?php function eliminarEspacios($cadena) { $cadena = strtolower($cadena); $cadena = ereg_replace( ' ', '', $cadena); return "<p class='centrado'>".$cadena."</p><br />"; } if( isset($_POST['enviar']) && $_SERVER['REQUEST_METHOD'] == 'POST' ) { $cadena = trim($_POST['cadena']); if( empty($cadena)) { echo "<p class='centrado'>Enviaste una cadena vaca</p>"; } else echo eliminarEspacios($cadena); } else { echo "<p class='centrado'>As no puedes ejecutar</p>"; } ?>
Descargar Ejecutar
Clculo de reas y permetros El programa principal (phpcodigo3903.php) realiza una interfase bsica buscando separar el formato del proceso, por eso la cantidad de archivos.
La funcin isset() checa si pulso el botn calcular (Lnea tres). En caso contrario carga la interfase lnea 15 La funcin unset() destruye una variable, es decir la saca de la memoria (Lnea cinco). La sentencia include() inserta y evala el archivo especificado, observe que se tiene uno por figura (Lnea 8 cuadrado.inc, lnea 10 circulo.inc y lnea 12 rectngulo.inc.
Por simplicidad se presenta aqu el cdigo cuadrado.inc que no es otra cosa que cdigo html para obtener los datos necesarios para calcular el rea y el permetro de un cuadro.
En este caso el nico dato necesario es el lado. Note que las propiedas id y name del form se llaman cuadrado (lnea 1), nombre de la figura. Considere que para todos las figuras el botn de procesamiento se llamara calcular. Se incluye un componente de tipo hidden con el valor de Cuadrado (lnea 16).
Envio de correos Enviar correos mediante PHP es sumamente sencillo si usamos la funcin mail La funcin mail es: mail($destino, $asunto, $mensaje, $encabezado);
donde
$destino: es la direccin a donde se enviar el mensaje $asunto: asunto del mensaje $mensaje: cuerpo del mensaje $encabezado: aqu se anexa por ejemplo a quien se enva el mensaje, si el mensaje va ir con copia para, si el mensaje ira con copia oculta para, si tendr formato html, etc. or die manda un mesaje si ocurre un error y detiene el proceso
Cdigo.
En la lnea 2 se carga una funcin llamada emailValido que se explicara posteriormente. En la lnea 4 se checa que la pgina se carga mediante el mtodo POST. Las lneas 9, 10 y 11 se recuperan los datos que provienen del formulario definido en phpcodigo3904.html. El correo se envia mediante el cdigo definido en la lnea 10, siempre y cuando tenga un destino, un asunto, un mensaje y un correo valido.
Convertir nmeros arbigos a romanos. Los nmeros romanos se escriben usando una serie de caracteres alfanmericos. Los nmeros romanos validos tienen un rango entre 1 y 3,999. Se presenta a continuacin la interfase y la solucin PHP.
La funcin principal es escribeRomanos la cual recibe como parmetro un nmero arbigo. El cdigo proporcionado incluye una funcin denominada entero que verifica que la cadena a traducir sea un entero valido entre 1 y 3,999. En las lneas 2, 8, 13 y 20 se crean los vectores necesarios para representar nmeros romanos (unidades, decenas, centenas y miles). La funcin substr extrae subcadenas y se usa para ir traduciendo el nmero arbigo a romano. La funcin int convierte una cadena a nmero si lo es.
Convertir nmeros a letras La funcin que se presenta a continuacin convierte nmeros a letras. El nmero a convertir debe ser un entero positivo menor a 999,999, 999,999.
La lnea 3 (Editada para fines de presentacin) declara un array con la representacin alfabtica de los nmeros comprendidos entre 1 y 29. Esta caracterstica se debe a que dichos nmeros no siguen un patrn para su escritura. La lnea 7 declara un arreglo asociativo que contiene la conversin de los nmeros 30, 40 ... y 90. La lnea 9 obtiene el mdulo 10 de n. Si el mdulo 10 de n es cero se regresa la posicin asociada a n en el vector decenas(lnea 9) Si el mdulo 10 de n es diferente de cero. Se regresa la posicin asociada a n en el vector decenas y se hace un llamado a la funcin bsico. La lnea 14 declara un arreglo asociativo para la representacin alfabtica de los nmeros 100,200, ... y 900. La lnea 20 hace uso de un operador ternario para poder manejar la escritura de los nmeros comprendidos entre 101 y 199. En la lnea 27 se obtiene la longitud de n. En el caso de los miles est longitud vara entre 4 y 6. substr($cadena, -3) obtiene los ltimos 3 caracteres de la cadena, lnea 28.
Grficos La grfica es una de las herramientas ms tiles en el estudio de la mayora de las disciplinas, ya que permite una visin de conjunto del fenmeno sometido a investigacin, ms rpidamente perceptible que la observacin directa de los datos numricos y alfanumricos. Sus aplicaciones son mltiples y variadas en casi todo el quehacer humano.
Existen diversas libreras escritas para PHP gratuitas y de paga, su seleccin depende del objetivo y el precio. En este punto abordaremos el uso de JpGraph librera de uso libre completamente escrita en PHP y funcional para scripts PHP. JpGraph es una librera orientada a objetos para PHP >= 5.1 Grfica X - Y A continuacin se presentan las temperaturas (mnimo, media y mxima) promedio en la ciudad y puerto de Veracruz, Ver. Mxico
En la lnea 2 y 3 se carga la librera JpGraph. Las lneas 4, 5 y 6 se encargan de definir los datos mediante arreglos para cada serie En las lneas 7 al 13 se definen las caractersticas de las grficas. Donde Graph( Ancho, Alto), crea un objeto de tipo grfica En las lneas 15 al 17, se definen el eje X en este caso meses en espaol. Las lneas 20 al 22, definen las series en la grfica La lnea 24 agrega fsicamente las series a las grficas y la lnea 25 imprime la grfica.
Gfica de barras El ejemplo describe los resultados oficiales del examen de admisin 2010 del Instituto Tcnologico de Veracruz. La lnea 11 se encarga de posicionar las leyendas de cada serie en nuestro caso ingresos a primer semestre e ingresos al semestre cero. La lnea 15 y 20 definen el formato de presentacin de los datos, en este caso %0.0f indica que los valores se presentaran como enteros. La propiedad SetFillGradient (lneas 16 y 21) configuran el degradado de los colores en las barras El mtodo Stroke nos permite mostrar la grfica (lnea 28)
Grficas de pastel Las grficas de pastel sirven para expresar porcentajes o conteos de variables cualitativas (ordinales o nominales).
PiePlot crea una instancia de una grfica de pastel (lnea 5) Las etiquetas se crean en la lnea 20 se definen las etiquetas de los datos y su representacin (.1f) expresa un decimal.