Anda di halaman 1dari 47

PROGRAMACIÓN CON PHP

ELABORADO POR : JORGE URIEL HERNÁNDEZ OROZCO


PHP
Hypertext Pre-Processor
ORIGEN DE PHP
„ 1995 Rasmus Lerdorf desarrolla a través de Perl un conjunto
de scripts para el control de acceso a sus páginas personales,
al conjunto de scripts se les denominó PHP (Personal Home
Pages).
„ 1997 se desarrola la versión 2.0 denominada PHP/FI(Forms
Interpreter).
„ 1998 Zeev Suraski y Andi Gutmans renuevan el lenguaje
creando PHP 3.0 y a partir de aquí se le denomina Hypertext
Preprocessor.
„ 1999 Zeev y Andi crean un nuevo núcleo para el lenguaje
(Zend Engine), y se libera la versión 4.0.
„ 2004 Se crea el motor Zend 2.0 y se libera PHP 5.0, se
introduce un modelo de orientación a objetos muy similar al
de Java.
DESCARGA DE FUENTES

„ http://www.apache.org/
„ http://www.php.net/
INSTALACIÓN DE APACHE
„ tar -zxvf httpd-xxx-tar.gz
„ cd httpd-xxx
„ ./configure --prefix=/usr/local/apachexxx
--enable-module=so
„ make
„ make install
NOTA:
--enable-module=so
se utiliza sólo para las
versiones 1.3 de apache
INSTALACIÓN DE PHP
„ Se puede instalar de 2 formas:
{ Como CGI : Disminuye el rendimiento ya que es el
sistema operativo quien se encarga de gestionar todos los
procesos derivados de la ejecución del script de php.
{ Como Módulo : Es más rápido y eficiente ya que las
ejecuciones del programa las realiza el servidor web.

NOTA : Además si se instala como CGI tanto apache como


php se tienen que recompilar en caso que se agregue
soporte adicional por parte de php, y como Módulo sólo se
recompila php
INSTALACIÓN DE PHP
(COMO MÓDULO DINÁMICO)
„ tar -zxvf php-xxx.tar.gz
„ cd php-xxx/
„ ./configure --prefix=/usr/local/phpxxx
--with-apxs2=/usr/local/apachexxx/bin/apxs
„ make
„ make install
„ cp php.ini-dist /usr/local/phpxxx/lib/php.ini
„ Agregar las siguientes líneas al archivo httpd.conf:
{ AddType application/x-httpd-php .php .phtml
{ AddType application/x-httpd-php-source .phps
INSTALACIÓN DE PHP
(CONT..)
{ Verificar que exista la línea :
LoadModule phpx_module modules/libphpx.so
„ Crear un archivo llamado info.php en el Document
Root de apache /usr/local/apachexxx/htdocs
con el siguiente contenido:
<? phpinfo(); ?>
„ Reiniciar apache.
„ Teclear en un navegador :
http://localhost/info.php
CGI
Common Gateway Interface
„ CGI es una norma para establecer comunicación
entre un servidor web y un programa, de tal modo
que este último pueda interactuar con internet.
También se usa la palabra CGI para referirse al
programa mismo, aunque lo correcto debería ser
script.
„ Cualquier lenguaje capaz de tener una salida
estándar es susceptible de ser utilizado para
desarrollar programas CGI (script CGI), ya sea
compilado o interpretado.
PROPÓSITO DE LOS CGI´S

„ Generar páginas de forma dinámica.


„ Procesamiento de formularios.
„ Interacción con Bases de datos.
„ Comercio electrónico.
„ Lectura y escritura de archivos.
„ Motores de búsqueda.
„ Foros de discusión.
LENGUAJES DE PROGRAMACIÓN
INTERPRETADOS

„ El programa siempre permanece en su


forma original (programa fuente) y el
intérprete proporciona la traducción al
momento de ejecutar cada una de las
instrucciones. Es decir, el programa será
ejecutado sin necesidad de ser codificado
antes, y de encontrarse un error la
ejecución se detendrá en el comando o
acción errónea.
„ No se genera un archivo binario.
„ Ejemplos: ASP, PHP, PERL.
LENGUAJES DE PROGRAMACIÓN
COMPILADOS

„ Los lenguajes compilados son aquellos que


necesitan ser codificados, antes de ser ejecutados
y obtener resultados, de encontrarse un error a la
hora de codificar los comandos del programa, éste
nunca podrá ser ejecutado.
„ Un compilador traduce un programa una sola vez,
generalmente. Un programa compilado indica que
ha sido traducido y está listo para ser ejecutado. La
ejecución de los programas compilados es cinco
veces más rápida que la de los interpretados, ya
que el intérprete debe traducir mientras está en la
fase de ejecución.
„ Ejemplos: Java,C,C++.
VENTAJAS Y DESVENTAJAS
LENGUAJE INTERPRETADO

„ Ventajas: Se puede editar y probar de forma


rápida ya que no requiere el proceso de
volver a compilar.
„ Desventajas: Es más lento que los
lenguajes compilados ya que no producen
un código objeto y recorren el código fuente
cada vez que son ejecutados, además de
que no protegen la implementación, ya que
se requiere el script para su ejecución.
VENTAJAS Y DESVENTAJAS
LENGUAJE COMPILADO
„ Ventajas: Es más veloz que el interpretado ya que no ejecuta
el código cada vez que se manda llamar, sino que posee un
código objeto que es el que se ejecuta, se protege la
implementación, ya que sólo existe un binario y no se requiere
del código fuente.
„ Desventajas: El ciclo de edición requiere de más tiempo, ya
que cada que se hace un cambio se tiene que volver a
compilar, no es portable (a excepción de java) y se requiere
del código fuente para las modificaciones.
ARQUITECTURA
CLIENTE/SERVIDOR

SCRIPT
HTTP
PHP

PÁGINA PÁGINA
HTML HTML SERVIDOR
CLIENTE SERVIDOR INTÉRPRETE BD
WEB PHP
FORMATO DEL CÓDIGO EN
PHP

„ Delimitadores de código php:


<?php ?>
<? ?> (1)
<% %> (2)
<script language=“php”> </script>
NOTA: Para utilizar (1) directiva short_open_tag=on
Para utilizar (2) directiva aspt_tags=on
delimitadores.php
„ <html>
„ <head>
„ <title>Delimitadores de php</title>
„ </head>
„ <body>
„ <h1 align="center">DELIMITADORES DE ETIQUETAS EN PHP</h1><hr>
„ <?
„ echo "Utilizando la etiqueta corta";
„ ?>
„ <br>
„ <script language="php">
„ echo "Utilizando la etiqueta de html script con php";
„ </script>
„ <br>
„ <?php
„ echo "<h1>utilizando etiquetas de html dentro de php, con la etiqueta";
„ echo "tradicional de php</h1><br>";
„ ?>
„ <%
„ echo "Utilizando las etiquetas de asp y de jsp";
„ %>
„ </body>
„ </html>
VARIABLES
„ Una variable es el nombre que se le da a una
posición de la memoria en la cual se almacena
información.
„ PHP es un lenguaje débilmente tipado, es decir, las
variables no tienen asociada la naturaleza del tipo
de información que almacenan.
„ En PHP una misma variable podrá almacenar
distintos tipos de información.
DEFINICIÓN DE VARIABLES

„ Sintaxis:
$nombre_de_variable
El nombre de las variables puede tener
letras,números y _ .

NOTA: PHP es case sensitive, por lo que


diferencia entre minúsculas y
mayúsculas.
TIPOS DE DATOS
„ Soporta 3 tipos de datos simples:
{ Integer
{ Float(sustituye a double desde v 4.2.0).
{ String
„ Y 2 tipos de datos compuestos:
{ Array
{ Object
„ Además hace uso de un tipo boolean que
no está en la sintaxis del lenguaje.
Integer (Enteros)

„ Números que varían entre -2 billones y


2 billones, se pueden representar en
formato decimal, octal o hexadecimal.
„ Ejemplos:
{ -33,2139 Decimal
{ 071,0336 Octal
{ 0x768, 0xAA Hexadecimal
Float (Flotantes)

„ Números con decimales.


„ Ejemplos:
{ 3405.673, -1.98
{ 8.32e+11, 5.6 e-3 Notación científica
String (Cadenas)
„ Cadenas de caracteres, una cadena está
formada por cero o más caracteres
encerrados entre “” ó ‘’.
„ Caracteres especiales para las cadenas:
{ \n Cambio de linea
{ \t Tabulación
{ \\ Barra inversa
{ \’ Comilla simple
{ \” Comilla doble
{ \$ caracter $
variables.php
„ <html> „ <br>
„ <head> „ <?
„ <title>VARIABLES</title> „ echo "Utilizando caracteres especiales
„ </head> para las cadenas<br>";
„ <body> „ $entero=0xFF;
„ <h1 align="center">VARIABLES</h1><hr> „ echo "Valor de la variable $entero :
„ <? <br>\t";
„ /* „ echo "$entero<br>\t";
„ Definimos las variables: „ $entero=4.74e-3;
„ Demostración del lenguaje débilmente „ echo "$entero<br>\n";
tipado „ $entero="hola";
„ */ „ echo '$entero\t';
„ $entero=-230; „ ?>
„ echo 'Valor de la variable $entero : „ </body>
<br>'; „ </html>
„ echo "$entero<br>";
„ $entero=4.74e3;
„ echo "$entero<br>";
„ $entero="hola";
„ echo $entero;
„ ?>
comentarios.php
„ <html> „ # Comentario al estilo Linux
„ <head> „
„ <title>COMENTARIOS</title> „ ?>
„ </head>
„ <body> „ </body>
„ <h1 align="center">COMENTARIOS</h1><hr> „ </html>

„ <?
„ // Comentario de una linea
„ $saludo="La casa de Juanito";
„ echo $saludo;
„
„ /*
„ Comentario de varias lineas
„
„ $saludo="La casa de Juanito";
„ echo $saludo;
„
„ */
„
Arrays (Arreglos)
„ Son estructuras que permiten el
almacenamiento de un conjunto de datos
bajo un mismo nombre.
„ En php los elementos que componen el
arreglo pueden ser de distintos tipos.
„ El primer elemento del arreglo tiene el
índice 0.
„ Se pueden crear a través del constructor
array() como:
$arreglo = array (“lunes”,”martes”,1,2.34);
arreglos.php
„ <html> „ echo "<td>IDENTIFICADOR</td>";
„ <head> „ echo "<td>NOMBRE</td>";
„ <title>ARREGLOS</title> „ echo "<td>MARCA</td>";
„ </head> „ echo "<td>EN EXISTENCIA</td>";
„ <body> „ echo "<td>INFO. ADICIONAL</td>";
„ <h1 align="center">ARREGLOS</h1><hr> „ echo "<td>COSTO</td>";
„ <? „ echo "</tr>";
„ echo "<p>El arreglo se llama „ echo "<tr>";
\$producto</p><br><br>"; „ echo "<td>$producto[0]</td>";
„ /* Se definen los elementos del arreglo „ echo "<td>$producto[1]</td>";
*/ „ echo "<td>$producto[2]</td>";
„ $producto[0] = "1"; „ echo "<td>$producto[3]</td>";
„ $producto[1] = "chiles"; „ echo "<td>$producto[4]</td>";
„ $producto[2] = "herdez"; „ echo "<td>$producto[5]</td>";
„ $producto[3] = "15"; „ echo "</tr>";
„ $producto[4] = ""; „ echo "</tbody>";
„ $producto[5] = "7.89"; „ echo "</table>";
„ echo "<table width=\"80%\"
border='1'>";
„ echo "<tbody>"; „ ?>
„ echo "<tr>"; „ </body>
„ </html>
Arrays Asociativos
„ Son arreglos especiales en los que el índice
es una valor de tipo string, de modo que
cada elemento del arreglo está definida por
el par (clave, valor) ó también llamado par
(key,value).
„ Son muy usados en PHP.
„ Se pueden definir a través del constructor
como:
$arreglo = array (‘dia’ => “lunes”,’costo’ => 2.34);
arreglosasociativos.php
„ <html> „ echo "<td>MARCA</td>";
„ <head> „ echo "<td>EN EXISTENCIA</td>";
„ <title>ARREGLOS ASOCIATIVOS</title> „ echo "<td>INFO. ADICIONAL</td>";
„ </head> „ echo "<td>COSTO</td>";
„ <body> „ echo "</tr>";
„ <h1 align="center">ARREGLOS „ echo "<tr>";
ASOCIATIVOS</h1><hr> „ echo "<td>" . $producto['id'] . "</td>";
„ <? „ echo "<td>" . $producto['nombre'] .
„ echo "El arreglo se llama "</td>";
\$producto<br><br>"; „ echo "<td>" . $producto['marca'] .
„ /* Se definen los elementos del arreglo "</td>";
asociativo */ „ echo "<td>" . $producto['existencia'] .
„ $producto['id'] = 1; "</td>";
„ $producto['nombre'] = "chiles"; „ echo "<td>" . $producto['informacion'] .
„ $producto['marca'] = "herdez"; "</td>";
„ $producto['existencia'] = 15; „ echo "<td>" . $producto['costo'] .
„ $producto['informacion'] = ""; "</td>";
„ $producto['costo'] = 7.89; „ echo "</tr>";
„ echo "<table „ echo "</table>";
width=\"80%\" border='1'><tr>";
„ echo "<td>IDENTIFICADOR</td>"; „ ?>
„ echo "<td>NOMBRE</td>"; „ </body>
„ </html>
Object (Objetos)

„ Es una estructura que define


características propias (denominadas
propiedades) y sus funcionalidades
(denominadas métodos).
CONVERSIÓN AUTOMÁTICA
DE TIPOS

„ Cuando operamos con variables de


distinto tipo, el intérprete de PHP
tiende a homogeneizar sus diferentes
tipos en función de la operación que
se pretende realizar.
conversionauto.php
„ <html>
„ <head>
„ <title>CONVERSIÓN AUTOMÁTICA DE TIPOS</title>
„ </head>
„ <body>
„ <h1 align="center">CONVERSIÓN AUTOMÁTICA DE TIPOS</h1><hr>
„ <?
„ $num=15;
„ $cadena1="23";
„ $cadena2="250aux";
„ $cadena3="1.245";
„ $cadena4="hola";
„ $suma=$num + $cadena1;
„ echo 'Sumando $num + $cadena1 = ' . $suma . "<br>";
„ $suma=$num + $cadena2;
„ echo 'Sumando $num + $cadena2 = ' . $suma . "<br>";
„ $suma=$num + $cadena3;
„ echo 'Sumando $num + $cadena3 = ' . $suma . "<br>";
„ $suma=$num + $cadena4;
„ echo 'Sumando $num + $cadena4 = ' . $suma . "<br>";
„ ?>
„ </body>
„ </html>
CONVERSIÓN DE TIPOS

„ Es posible convertir las variables a un tipo


específico si se desea, es el llamado casting
en C o conversión de tipo.
„ Se escribe entre paréntesis el tipo deseado
antes de la variable, que puede ser integer,
float, string, boolean, array, object).
„ Ejemplo:
{ (float)$micadena;
casting.php
„ <html>
„ <head>
„ <title>CONVERSIÓN DE TIPOS (CASTING)</title>
„ </head>
„ <body>
„ <h1 align="center">CONVERSIÓN DE TIPOS (CASTING)</h1><hr>
„ <?
„ $cadena2="250.789 es un buen número";
„ $cast=(integer)$cadena2;
„ echo 'Contenido de $cast : ' . $cast . "<br>";
„ $cast=(float)$cadena2;
„ echo 'Contenido de $cast : ' . $cast . "<br>";
„ $cast=(boolean)$cadena2;
„ echo 'Contenido de $cast : ' . $cast . "<br>";
„ $cast=(array)$cadena2;
„ echo 'Contenido de $cast : ' . $cast . "<br>";
„ echo "$cast[0]<br>";
„ $cast=(object)$cadena2;
„ echo 'Contenido de $cast : ' . $cast . "<br>";
„ ?>
„ </body>
„ </html>
CONSTANTES
„ Una constante es una variable que mantiene el
mismo valor durante toda la ejecución del
programa.
„ Constantes predefinidas de PHP:
{ PHP_VERSION
{ PHP_OS
{ TRUE
{ FALSE
„ Sintaxis de definición de constantes:
define(“constante”,valor)
constantes.php
„ <html>
„ <head>
„ <title>CONSTANTES</title>
„ </head>
„ <body>
„ <h1 align="center">CONSTANTES</h1><hr>
„ <?
„ define("DOLAR",11.47);
„ define("euro",15.02);

„ echo "Valor de dolar " . DOLAR . "<br>";


„ echo "Valor de euro " . euro . "<br>";
„ echo "Estamos trabajando con : <br>";
„ echo "Version de PHP : " . PHP_VERSION . "<br>";
„ echo "Sistema Operativo : " . PHP_OS . "<br>";
„ echo TRUE . "<br>";
„ echo FALSE . "<br>";
„ ?>
„ </body>
„ </html>
OPERADORES

„ ARITMÉTICOS:
{ + $a + $b
{ - $a - $b
{ * $a * $b
{ / $a / $b
{ % $a % $b
OPERADORES (CONT…)

„ DE ASIGNACIÓN:
{ = $a = $b
{ += $a += $b Æ $a = $a + $b
{ -= $a -= $b
{ *= $a *= $b
{ /= $a /= $b
{ %= $a %= $b
{ .= $a .= $b
OPERADORES (CONT…)

„ DE CADENAS:
{ . Operador de concatenación de 2
cadenas.
{ .= Concatenación y asignación.
operadores1.php
„ <html> „ $mult=$var1*$var2;
„ <head> „ $concatena.='La multiplicación de $var1 *
„ <title>OPERADORES 1</title> $var 2 = ' . $mult . "<br>";
„ </head> „ $mult*=$var3;
„ <body> „ $concatena.='El resultado acumulado de
„ <h1 align="center">OPERADORES $mult = ' . $mult . "<br>";
1</h1><hr> „ $div=$var1/$var2;
„ <? „ $concatena.='La división de $var1 / $var 2 = '
„ $var1=2; . $div . "<br>";
„ $var2=4; „ $div/=$var3;
„ $var3=5; „ $concatena.='El resultado acumulado de $div
= ' . $div . "<br>";
„ $suma=$var1+$var2; „ $mod=$var1%$var2;
„ $concatena='La suma de $var1 + $var 2 = ' . „ $concatena.='El módulo de $var1 % $var 2 = '
$suma . "<br>"; . $mod . "<br>";
„ $suma+=$var3; „ $mod%=$var3;
„ $concatena.='El resultado acumulado de „ $concatena.='El resultado acumulado de
$suma = ' . $suma . "<br>"; $mod = ' . $mod . "<br>";
„ $resta=$var1-$var2; „ echo $concatena;
„ $concatena.='La resta de $var1 - $var 2 = ' . „ ?>
$resta . "<br>";
„ $resta-=$var3; „ </body>
„ $concatena.='El resultado acumulado de „ </html>
$resta = ' . $resta . "<br>";
OPERADORES (CONT…)

„ DE INCREMENTO Y DECREMENTO.
{ ++ ++$a incrementa $a en uno y
después devuelve $a
$a++ devuelve $a y después lo
incrementa
{ -- --$a predecremento
$a-- postdecremento
OPERADORES (CONT…)
„ DE COMPARACIÓN : Se utilizan para comparar
expresiones,el resultado es true o false, se utilizan
en la toma de decisiones.
{ == $a == $ b
{ != $a != $ b
{ === $a === $b Idénticos(iguales y del
mismo tipo)
{ !== $a !== $b
{ < $a < $b
{ > $a > $b
{ <= $a <= $b
{ >= $a >= $b
OPERADORES (CONT…)

„ A NIVEL DE BIT : Realizar operaciones a


nivel de bits, es decir con ceros y unos.
{ & $a & $b AND
{ | $a | $b OR
{ ^ $a ^ $b XOR
{ ~ $a ~ $b CA1
{ << $a << $b DESP. IZQ.
{ >> $a >> $b DESP. DER.
OPERADORES (CONT…)
„ LÓGICOS : Se utilizan con expresiones que
devuelven valores lógicos, con estos operando se
pueden combinar varias expresiones y evaluarlas
en una sola expresión.
{ && ó and $a && $b TRUE si a y b son TRUE
{ || ó or $a || $b TRUE si a ó b son TRUE
{ ! !a Niega el valor lógico
{ xor $a xor $b TRUE si alguno es TRUE
pero no los 2 a la vez
PRECEDENCIA DE
OPERADORES
„ De mayor a menor precedencia:
„ ! ~ ++ -- (int) (double) (string) (array) (object) ( )
„ */%
„ +-.
„ << >>
„ < <= > >=
„ == != ===
„ &
„ ^
„ |
„ &&
„ ||
„ ?:
„ = += -= *= /= .= %= &= |= ^= ~= <<= >>=
„ and
„ xor
„ or
FUNCIONES PARA
VARIABLES
„ gettype(variable) : Devuelve el tipo de dato del
parámetro.
„ settype(variable, tipo) : Establece el tipo de dato a
guardar en una variable, realiza conversiones de
tipo de datos.
„ isset(variable) : Devuelve true si una variable ha
sido inicializada con un valor, de lo contrario
devuelve false.
„ empty(variable) : Devuelve true si la variable no ha
sido inicializada, si tiene un valor 0 o si es una
cadena vacia, de lo contrario devuelve false.
FUNCIONES PARA
VARIABLES (CONT..)
„ is_int(variable) : True si la variable es entera.
„ is_float(variable) : True si la variable es flotante.
„ is_numeric(variable) : True si la variable es un
número o una cadena numérica.
„ is_bool(variable) : True si la variable es de tipo
lógico.
„ is_array(variable) : True si la variable es de tipo
arreglo.
„ is_string(variable) : True si la variable es de tipo
cadena.
„ is_object(variable) : True si la variable es de tipo
objeto.

Anda mungkin juga menyukai