Você está na página 1de 41

Compiled by: Mg.

Jaime Suasnábar Terrel


1. INTRODUCCIÓN A LA PROGRAMACIÓN DEL LADO SERVIDOR
Para crear páginas web complejas y realizar transacciones en línea, por ejemplo,
compras en línea, es necesario hacer algo de programación. Algunos programas
corren en la computadora del cliente, esto es, en el navegador (browser), y
algunos corren en la computadora del servidor web.
La programación web del lado del servidor (server-side scripting) es una tecnología
en la cual una petición del usuario es atendida por la ejecución directa en el
servidor web de una aplicación, para generar páginas web dinámicas.

Las páginas web dinámicas son páginas HTML generadas a partir de código escrito
en lenguajes de programación (scripts) que son ejecutados en el propio servidor
web.
Los scripts del lado del servidor generan un código HTML desde el propio servidor
web, este código HTML puede ser modificado, por ejemplo: en función de una
petición realizada por el usuario en una Base de Datos. Dependiendo de los
resultados de la consulta en la Base de Datos, se generará un código HTML u otro,
mostrando diferentes contenidos.

La programación web del lado del servidor es comúnmente usada para dar
interactividad a los sitios web que se conectan a bases de datos u otros almacenes
de datos, como se va a realizar en este curso.
Una de las principales ventajas de la programación del lado del servidor es la
habilidad de preparar la respuesta basada en los requerimientos del usuario,
derechos de acceso, o consultas en la base de datos.
Las páginas generadas en el servidor son útiles en muchas ocasiones. Con ellas se
puede hacer todo tipo de aplicaciones web. Desde agendas, foros, sistemas de
documentación, estadísticas, juegos, chats, etc. Son especialmente útiles en
trabajos que se tiene que acceder a información centralizada, situada en una base
de datos en el servidor, y cuando por razones de seguridad los cálculos no se
pueden realizar en la computadora del usuario.

Es importante destacar que las páginas dinámicas generadas en el servidor son


necesarias porque para hacer la mayoría de las aplicaciones web se debe tener
acceso a muchos recursos externos a la computadora del cliente, principalmente
bases de datos alojadas en servidores de Internet. Un caso claro es un banco: no
tiene ningún sentido que el cliente tenga acceso a toda la base de datos, sólo a la
información que le concierne.
Las páginas dinámicas del servidor se suelen escribir en el mismo archivo HTML,
mezclado con el código HTML, al igual que ocurría en las páginas del cliente.
Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los
scripts y se genera una página resultado, que solamente contiene código HTML.
Este resultado final es el que se envía al cliente y puede ser interpretado sin lugar
a errores ni incompatibilidades, puesto que sólo contiene HTML.
Por lo tanto es el servidor el que maneja toda la información de las bases de datos
y cualquier otro recurso, como imágenes o servidores de correo y luego envía al
cliente una página web con los resultados de todas las operaciones.

Compiled by: Mg. Jaime Suasnábar Terrel


Para escribir páginas dinámicas del lado del servidor existen varios lenguajes de
programación, como son: Common Gateway Interface (CGI) comúnmente escritos
en Perl, Active Server Pages (ASP), Hipertext Preprocesor (PHP), y Java Server
Pages (JSP). VBScript es usado para programar en ambos lados cliente y servidor,
pero primeramente para el lado del servidor en plataformas de Microsoft.
Las ventajas de este tipo de programación son que el cliente no puede ver los
scripts, ya que se ejecutan y transforman en HTML antes de enviarlos. Además son
independientes del navegador del usuario, ya que el código que reciben es HTML
fácilmente interpretable.

Como desventajas se puede señalar que será necesario un servidor más potente y
con más capacidades que el necesario para las páginas del lado del cliente.
Además, estos servidores podrán soportar menos usuarios concurrentes, porque
se requerirá más tiempo de procesamiento para cada uno. El hecho de que la
ejecución se realice en el servidor usualmente resulta en una sobrecarga por las
múltiples llamadas o peticiones de los clientes.
Las páginas dinámicas nos pueden ayudar a administrar más fácilmente los
contenidos del sitio web y a interactuar con Bases de Datos. Por ejemplo, si
tenemos uno o varios menús en nuestras páginas, y queremos modificarlos, no
tendremos que ir página por página editándolos, sino que bastará hacerlo una sola
vez. En el resto de las páginas, bastará incluir (en PHP, por ejemplo):

include 'menu-izquierda.html';

Además, todos los lenguajes script disponen de componentes para la conexión con
la mayoría de los Sistemas Manejadores de Bases de Datos (mySQL, Oracle, SQL
Server, y otros más). Esto nos puede servir para almacenar los contenidos dentro
de una Base de Datos, en lugar de realizar cada página web una por una.

Algunas tecnologías de programación del lado del servidor

 ASP: Lenguaje script creado por Microsoft para su servidor web 'Internet
Information Server' (IIS), y basado en 'Visual Basic Script'. La última versión
'ASP.net' forma parte del Framework '.net'.
 CGI: Abreviatura de 'Common Gateway Interface'. Se trata de un estándar
para la interacción entre aplicaciones externas y servidores web. Gracias a
ello, podríamos adaptar cualquier programa que hayamos realizado en
cualquier lenguaje para que interactúe con nuestro servidor. Sin embargo,
Perl se ha convertido en el lenguaje más popular para desarrollar
aplicaciones CGI, aunque también se suele utilizar C o C++.
 JSP: Lenguaje script creado por Sun, basado en la tecnología Java. No es
necesario que el usuario disponga de la máquina virtual de Java ya que ésta
se encuentra en el servidor que crea las páginas HTML. Tiene poco que ver
que los 'applets' de Java, y nada que ver con PHP. Los scripts JSP son un
caso particular de los 'servlets'.
 PHP: Lenguaje script de código abierto. Ampliamente utilizado sobre el
servidor web Apache.

Compiled by: Mg. Jaime Suasnábar Terrel


2. INTRODUCCIÓN A PHP (HyperText Preprocessor Pages=.

PHP es un lenguaje script que permite la generación dinámica de contenidos en


un servidor web. Toda Instrucción termina con ;
PHP es potente, alto rendimiento, fácil aprendizaje y reducido consumo de
recursos.

COMO INSERTAR CODIGO PHP


Usando las etiquetas:
<?php

?>
Usando las etiquetas:
<? ?>
Mediante
<script languaje="php">

</script>

El funcionamiento de las páginas en PHP alojadas en un servidor es el siguiente:

2. Llega la solicitud
3. Una vez ejecutado 4. El servidor
del cliente y el
el código se genera el transfiere el
1. El navegador del servidor localiza el
resultado en HTML y resultado en HTML y
cliente solicita el documento, lanza el
lo devuelve al es mostrado en el
documento PHP. intérprete de PHP y
servidor para que lo navegador del
ejecuta todo su
transfiera al cliente. cliente.
codigo.

3. VARIABLES

Una variable podría definirse como un espacio de memoria creada para almacenar
un dato.
En PHP (al igual que en JavaScript) no hace falta declarar la variable ya que
simplemente anteponiendo el caracter $ al nombre de la variable estamos
indicando que es una variable.

Compiled by: Mg. Jaime Suasnábar Terrel


La declaración de variables es que PHP es un lenguaje "CASE SENSITIVE" es decir
que diferencia entre mayúsculas y minúsculas.
DECLARACIÓN DE UNA VARIABLE
$Nom_Variable=Valor;

Los tipos de datos posibles que puede almacenar una variable son los siguientes:

Integer Números enteros positivos y negativos


Double Números decimales o de coma flotante
String Cadenas de texto
Boolean Valores True o False
Array Tipo especial de colección de valores
Object Tipo especial de dato complejo

3.1. CONVERTIR TIPOS

PHP es un lenguaje que realiza la conversión de tipos en función de los


operandos y del operador. De esta forma si intentamos sumar la cadena '10'
y el número 20 la acción que realizaría sería convertir la primera variable a
numérica y de esa forma podría sumar 10+20=30.

Nos permiten saber el tipo de variable que estamos usando y también


pueden convertir el tipo de variable:

gettype() Recibe el tipo de variable que es

settype($variable,'tipo variable') Transforma el tipo de variable del modo


actual a el modo que le introduzcamos.

3.2. VARIABLES CARACTERÍSTICAS DE PHP

$_SERVER['argc'] Número de parametros pasados al script en su


ejecución.

$_SERVER['PHP_SELF'] Nombre del script que se está ejecutando

$_COOKIE Array asociativo de pares (Indice,valor) pasados a través de


cookies

$_GET Array asociativo de pares (Indice,valor) pasados a través de GET

$_POST Array asociativo de pares (Indice,valor) pasados a través de POST

$_FILES Array asociativo que contiene información de los archivos


recibidos mediante POST

Compiled by: Mg. Jaime Suasnábar Terrel


$_ENV Array asociativo de pares (Indice,valor) del entorno

$_SERVER Array asociativo de pares (Indice,valor) del servidor

$_SESSION Array asociativo de pares (Indice,valor) de sesion

4. INSTRUCCIONES BÁSICAS DE PHP


CONSTANTES
Son valores que se van a mantener constantes a lo largo de la ejecución del script.
Para ello usamos la siguiente sintaxis:
define("nombre de la constante", valor);

COMO INSERTAR COMENTARIOS


En una línea usamos //
En varias líneas /* - */ .

MOSTRAR TEXTO O HIPERTEXTO EN UNA PÁGINA


Para que el servidor envié texto utilizaremos la instrucción echo.
echo "Texto a mostrar o Hipertexto";

También podemos utilizar printf.


Printf("Texto a mostrar o Hipertexto");

5. MI PRIMER SCRIPT PHP


Una vez que ya tenemos instalados PHP y MySQL , y el servidor Apache
configurado para usarlos, podemos comenzar a escribir nuestro primer script en
PHP.
Ejemplo script php
<?php
$mivar = "Hola. Este es mi primer script en PHP n";
//Esto es un comentario
echo $mivar;
?>

COMO EJECUTAR LA PÁGINA DEL LADO SERVIDOR


Una vez escrito esto lo salvamos en un archivo con la extensión php, y lo
colocamos en nuestro servidor, http://mi_servidor/php/NomArchivo.php . Ahora
si ponemos esta URL en nuestro navegador veremos una línea con el texto "Hola.
Este es mi primer script en PHP" .

Compiled by: Mg. Jaime Suasnábar Terrel


6. OPERADORES EN PHP
Son símbolos que permiten realizar operaciones con variables o constantes.

6.1. OPERADORES ARITMÉTICOS

+, -, * y / Operaciones básicas
% Resto de dividir dos valores
++ y -- Incremento o decremento en una unidad

6.2. OPERADORES DE ASIGNACIÓN

= Asigna a la parte derecha el valor izquierdo


+= Suma v1 derecha con v2 izquierda y la asigna a la v1 derecha
-= Resta de la derecha con la izquierda y la asigna a la derecha
*= Multiplicación v1 derecho con v2 izquierd y la asigna al v1 derecho
/= División de la derecha con la izquierda y la asigna a la derecha
%= Se obtiene el resto y se asigna
.= Concatena el valor izquierdo con el derecho y asigna al derecho

6.3. OPERADORES LÓGICOS

! Operador NO o negacion.Si era true pasa a false y viceversa


&& And lógico. True si ambos lo son
|| o Or. True si alguno lo es
xor Verdadero si alguno de los dos es true pero nunca ambos

6.4. OPERADORES CONDICIONALES

== Comprueba si dos números son iguales


!= Comprueba si dos números son distintos
> Mayor que, devuelve true en caso afirmativo
< Menor que, devuelve true en caso afirmativo
>= Mayor o igual
<= Menor o igual

7. ESTRUCTURAS DE CONTROL Y REPETICIÓN


Permite controlar el flujo de ejecución de código.

7.1. ESTRUCTURA IF

IF es una estructura de control utilizada para tomar decisiones según se


cumpla una condición (o varias) o no. Su estructura básica es la siguiente:
if(condición){
Instrucciones;
}
else{
Instrucciones;
}

Compiled by: Mg. Jaime Suasnábar Terrel


Ejemplo
Veamos un ejemplo básico para entenderlo mejor:
if($edad>=18){
Es mayor de edad;
}else{
echo "Es menor de edad";
}

7.2. ESTRUCTURA SWITCH

Toma distintas decisiones en función de distintos estados de la variable.Su


sintaxis es la siguiente:
switch(expresión){
case valor1:
Instrucciones;
break
case valor2:
Instrucciones;
break
case valor3:
Instrucciones;
break
default:
Instrucciones;

Ejemplo script php con IF


<?php
if ($i == 0) {
echo "i es igual a 0";
} elseif ($i == 1) {
echo "i es igual a 1";
} elseif ($i == 2) {
echo "i es igual a 2";
}
?>

Ejemplo script php con SWITCH


switch ($i) {
case 0:
echo "i es igual a 0";
break;
case 1:
echo "i es igual a 1";
break;
case 2:
echo "i es igual a 2";
break;
}

Compiled by: Mg. Jaime Suasnábar Terrel


7.3. ESTRUCTURA REPETITIVA FOR

Permite repetir un grupo de instrucciones. Su sintaxis es la siguiente:


for([Inicialización]; [Condición]; [Expresión de
actualización])
{
Instrucciones a repetir
}

Se ejecuta la inicialización, se evalúa la condición y se actualizan los valores


dados en la expresión de actualización.

Ejemplo script php con FOR


for ($i = 1; $i <= 10; $i++) {
echo $i;
}

7.4. ESTRUCTURA REPETITIVA WHILE

Permite repetir un grupo de instrucciones. Su sintaxis es la siguiente:


while(Condición) {
Instrucciones a repetir
}

Ejemplo script php con WHILE


$i = 1;
while ($i <= 10) {
echo $i++;
}

7.5. ESTRUCTURA REPETITIVA DO WHILE

Permite repetir un grupo de instrucciones. Su sintaxis es la siguiente:


do {
Instrucciones a repetir
} while(condicion);

Ejemplo script php con DO WHILE


$i = 0;
do {
echo ++$i;
} while ($i < 10);

Compiled by: Mg. Jaime Suasnábar Terrel


7.6. ESTRUCTURA REPETITIVA FOREACH

Esta estructura sólo permite iterar sobre arrays y objetos.


Existen dos sintaxis:
foreach (expresión_array as $valor)
sentencias

o
foreach (expresión_array as $Indice => $valor)
sentencias

La primera forma recorre el array dado por expresión_array. En cada


iteración, el valor del elemento actual se asigna a $valor y el puntero interno
del array avanza una posición (así en la próxima iteración se estará
observando el siguiente elemento).
La segunda forma además asigna el indice del elemento actual a la variable
$indice en cada iteración.
Ejemplo script php con Foreach caso 1
$array = array(1, 2, 3, 4);
foreach ($array as &$valor) {
$valor = $valor * 2;
}
// $array ahora es array(2, 4, 6, 8)
unset($valor); // rompe la referencia con el último elemento

Ejemplo script php con Foreach caso 2


foreach (array(1, 2, 3, 4) as &$valor) {
$valor = $valor * 2;
}

8. ARRAYS
Un array es una variable en la que podemos guardar varios datos o variables
agrupados a la vez. Estos forman una lista, la cual tiene un único nombre.
Ejemplos:
$semana = [los días de la semana]
$meses = [los nombres de los meses]
$clientes = [los nombres de los clientes]

TIPOS DE ARRAYS
 Array Indexado.
 Array Asociativo.
 Array Multidimensional

8.1. ARRAYS INDEXADOS

El acceso a sus elementos representados por un índice:

Compiled by: Mg. Jaime Suasnábar Terrel


DEFINIR UN ARRAY
Como una variable, mediante la función array(). Dentro del paréntesis
escribimos los valores o variables que contiene el array, separados por
comas:
$a= array(índice 0 => valor, índice 1 => valor,..... ,índice
n => valor);

Ejemplo: Array Implicito


$nom_array=array("primavera", "verano", "otoño",
"invierno");

Ejemplo: Dentro del array podemos poner todo tipo de datos:


$miarray=array("Juan",,32,17.5,true);

Ejemplo: Array Explícito


$nom_array=array (0 =>2, 1=>"Pepe", 2=>34.7,
3=>"34Ambrosio");

LEER UN ARRAY
Significa que, a cada elemento del array le corresponde un número.
Se empieza a contar desde 0, para el primer elemento. Al último elemento
de un array de n elementos le corresponderá el número n-1.
$nombreArray[num_elemento].

MOSTRAR UN ARRAY
echo "$nom_array[0], $nom_array[1], $nom_array[2],
$nom_array[3].";

DEFINIR UN ARRAY POR SUS ELEMENTOS


Podemos definir un array directamente por sus elementos:
$turnos[0]="mañana";
$turnos[1]="tarde";
$turnos[2]="noche";

Es lo mismo que si hubieramos escrito:


$turnos= array("mañana","tarde","noche");

Compiled by: Mg. Jaime Suasnábar Terrel


CONTAR LOS ELEMENTOS DE UN ARRAY
$num=count($temporada);
echo "El array \$temporada tiene $num elementos.";

RECORRER UN ARRAY indexado


Utilice un for u otro bucle
Ejemplo
$nombre = "Jaime";
$array = array(10, 12, 23, "CEI", $nombre);

//Obtener el numero de elementos


$longitud = count($array);

//Recorrer todos los elementos


for($i=0; $i<$longitud; $i++){
//saco el valor de cada elemento
echo $array[$i];
echo "<br>";
}

8.2. ARRAYS ASOCIATIVOS

En un array asociativo cada elemento del array se compone de un valor y un


índice. Es decir, si los comparamos con los arrays indexados, el valor (será el
contenido de un elemento), mientras que el indice (será el número con el
que llamamos al elemento).

DEFINIR ARRAYS ASOCIATIVOS


Para definir una array asociativo debemos definir para cada elemento tanto
su valor como su Índice.
$miarray=array("Índice1"=>"valor1","Índice2"=>"valor2", ...
,"ÍndiceN"=>"valorN");

Ejemplo
$dia=array("dom"=>"Domingo","lun"=>"Lunes", ...
,"sab"=>"Sabado");

Compiled by: Mg. Jaime Suasnábar Terrel


LEER ELEMENTOS EN ARRAYS ASOCIATIVOS.
Para acceder o poder leer un elemento de un array asociativo, debemos
saber y escribir entre corchetes su Índice (funciona con o sin comillas)
después de la variable que lo contiene:
echo $array1[Indice];

Ejemplo
echo $dia[sab];

Si la variable la escribimos en una frase entrecomillada, la pondremos sin


comillas. Es decir podemos escribir:

echo "Palián, $dia[sab] 08 de octubre de 2016.";

VER LA ESTRUCTURA DE LOS ARRAYS.


Para ver la estructura almacenada:
Print_r $nom_array;

RECORRER LOS ELEMENTOS DE UN ARRAY ASOCIATIVO.


No siempre conocemos el Índice del elemento, o queremos ver los
elementos que contiene el array. La funcion each() crea una variable que nos
indica el nombre y el valor de los elementos. Esta variable es a su vez otro
array que contiene el índice y el valor del elemento.

En principio obtendremos el índice y el valor del primer elemento, pero la


función tiene también un puntero interno, que cada vez que se usa avanza
una posición; de modo que si la volvemos a utilizar de nuevo nos dará el
índice y el valor del siguiente elemento.

Veámos un ejemplo con las capitales europeas.


$cap=array("España"=>"Madrid", "Francia"=>"París",
"Inglaterra"=>"Londres", "Italia"=>"Roma",
"Portugal"=>"Lisboa", "Alemania"=>"Berlín");

FUNCION EACH
En principio llamamos a la función each($miarray), y la guardamos en una
variable:
$verCap=each($cap);

Ahora la variable $verCap será un array que tendrá los siguientes elementos:
$verCap[0];// muestra el Índice del elemento.
$verCap[1];// muestra el valor del elemento.
$verCap["key"];// muestra el Índice del elemento.
$verCap["value"];// muestra el valor del elemento.

Compiled by: Mg. Jaime Suasnábar Terrel


Podemos usar indistintamente el 0, o la palabra key para obtener EL ÍNDICE;
así como usar el 1 o la palabra value para obtener EL VALOR.

En principio el puntero interno del array apunta, si este no se ha usado antes,


al primer elemento, por lo que para mostrar el primer elemento usaremos:

echo "Índice: $verCap[key] -- Valor: $verCap[value]";

Lo cual nos mostrará en pantalla lo siguiente:


Índice: España -- Valor: Madrid

Ahora el puntero ha avanzado una posición por lo que si volvemos a escribir


de nuevo el código anterior obtendremos el valor del segundo elemento:
$verCap=each($cap);
echo "Indice: $verCap[key] -- Valor: $verCap[value]";

Clave: Francia -- Valor: París

Debemos repetir tanto la función each($array) como el código que muestra


en pantalla el resultado, (instrucción echo) para mostrar el siguiente
elemento.

Si volvemos a repetir el código, obtendremos con cada repetición el


siguiente elemento, repitiéndolo 4 veces más veremos el resto de los
elementos:

Indice: Inglaterra -- Valor: Londres


Indice: Italia -- Valor: Roma
Indice: Portugal -- Valor: Lisboa
Indice: Alemania -- Valor: Berlín

La función each puede aplicarse también con arrays indexados. En este caso
el Indice nos dará el índice del elemento.

INSTRUCCIÓN FOREACH

Existen dos sintaxis:


foreach (expresión_array as $valor){
sentencias
}

o
foreach (expresión_array as $Indice => $valor){
sentencias
}

Compiled by: Mg. Jaime Suasnábar Terrel


Ejemplo
/// asociacion de personas con su pais de origen
$personas = array("juan" => "Mexico", "john" => "USA",
"eica" => "finlandia", "kusanagi" => "japon");

foreach($personas as $persona => $pais){


print "$persona es de $pais<br>";
}

$personas es el array
$persona es la Indice
La funcion foreach toma el array asociativo $personas y lo va recorriendo,
almacena en cada bucle la Indice dentro de la variable $persona y el valor
dentro de la variable $pais, posteriormente dentro del for imprimos los
resultados.

8.3. ARRAYS MULTIDIMENSIONALES

PHP permite el uso de arrays con dimensión superior a dos. Para modificar
la dimensión del array basta con ir añadiendo nuevos índices.

Asignaría un valor al elemento de índices x, y y z de un array tridimensional


$a[x][y][z]=valor;

Ahora con un array de dimensión cuatro.


$a[x][y][z][w]=valor;

Pueden tener cualquier tipo de índices: escalares, asociativos y, también,


mixtos.

Ejemplo
Crear un array multidimensional indexado de 2x3 e imprimir sus datos en
orden.
$z=array(
0 => array (
0 => 34,
1 => 35,
2 => 36,
),
1 => array (
0 => 134,
1 => 135,
2 => 136,
)
);

Ejemplo
Crear un array multidimensional asociativo de 2x3 e imprimir sus datos en
orden.

Compiled by: Mg. Jaime Suasnábar Terrel


$z=array(
"a" => array (
"A" => 34,
"B" => 35,
"C" => 36,
),
"b" => array (
"A" => 134,
"B" => 135,
"C" => 136,
)
);

Ejemplo
Crear un array multidimensional asociativo de nx3 con los datos de clientes
e imprimir sus datos en orden.
$datosArray = array(

array('nombre' => 'Antonio', 'apellidos' => 'Gómez


Gómez', 'telefono' => '242145'),

array('nombre' => 'Pedro', 'apellidos' => 'Guillén


Asto', 'telefono' => '222178'),

array('nombre' => 'Dolores', 'apellidos' => 'Candela


Soto', 'telefono' => '255432'),

.
.
.

array('nombre' => 'Rubén', 'apellidos' => 'Guardia


Jurado', 'telefono' => '213896')
);

9. FUNCIONES
Es un grupo de código asociado a un nombre esta puede ser una funci’’on cuando
devuelve un valor o procedimiento cuando no devuelve valor y solo realiza tareas.
Tipos de funciones

9.1. FDU CON PARAMETROS POR VALOR

Función definida por el usuario. Su estructura básica es la siguiente:


function Nom_Funcion($arg_1, $arg_2, /* ..., */ $arg_n){
Instruccion;
Instruccion;
Instruccion;
return $valordevuelto;
}

Compiled by: Mg. Jaime Suasnábar Terrel


Ejemplo script php con Function
<?php
function media_aritmetica($a, $b){
$media=($a+$b)/2;
return $media;
}
echo media_aritmetica(4,6),"<br>";
echo media_aritmetica(3242,524543),"<br>";
?>

9.2. FDU CON PARAMETROS POR REFERENCIA

Función definida por el usuario. Su estructura básica es la siguiente:


function Nom_Funcion(&$arg_1, &$arg_2, /* ..., */ &$arg_n)
{
Instruccion;
Instruccion;
Instruccion;
return $valordevuelto;
}

& Covierte a un parámetro por referencia.

9.3. FUNCIONES RECURSIVAS EN PHP

Son funciones que permiten llamarse a simismo varias veces.


function recursividad($a){
if ($a < 20) {
echo "$a\n";
recursividad($a + 1);
}
}

9.4. PRINCIPALES FUNCIONES INTERNAS DE PHP

echo y print
El código PHP no se muestra en la página. Por eso, si queremos escribir
código HTML, debemos de hacerlo utilizando las funciones echo o print.

isset
La función isset($variable), comprueba si una variable ha sido definida.
Devuelve verdadero si lo ha sido y falso si no.

mail
La función mail envía un correo electrónico. Tiene la siguiente estructura:
mail("email_destino", "asunto", "cuerpo_mensaje");

Donde "email_destino" es la dirección de correo a la enviaremos el mensaje,


"asunto" es el asunto, y "cuerpo_mensaje" es el contenido del mensaje.

include

Compiled by: Mg. Jaime Suasnábar Terrel


Sirve para incluir, en esa ubicación, otro archivo. Sería como copiar el
contenido de ese archivo, y pegarlo ahí.
include("pagina.php");

strip_tags
Elimina el código HTML de una cadena:
strip_tags("<p class="a1">Hola <span>mundo</span></p>")
devuelve Hola mundo.

trim
Quita los espacios al principio y final de una cadena
trim(" Hola mundo "); //devuelve Hola mundo

ceil
Redondea un valor numérico a un entero mayor.
ceil(2.5) devuelve 3, ceil(2.1) devuelve 3

count
Devuelve el número de elementos que hay en un array.

header
Nos permite escribir la cabecera de la página.
header("Location: http://www.mipagina.com");
exit;

Redirigimos la página a la web de mipagina.


exit
Finaliza la ejecución del código PHP.

Compiled by: Mg. Jaime Suasnábar Terrel


10. RUNAT DE FORMULARIOS EN EL SERVIDOR
Actualmente, los Sistemas de Información se implementan a través de la web, por
lo que diseñar formularios web es imprecindible.

10.1. FORMULARIOS CON EL METODO GET/POST/REQUEST

Esto se define en el atributo Method del tag Form y requiere de dos páginas,,
los datos se envían a través de la dirección URL:
POST
PRIMERA PÁGINA
<form action="programa.php" method="GET" id=”formulario”>
Nombre: <input type="text" name="nombre" />
Edad: <input type="text" name="edad" />
<input type="submit" value=”Procesar”>
</form>

SEGUNDA PÁGINA
<html> $_POST $_REQUEST[‘nombre’]
<body>

Bienvenido <?php echo $_GET['nombre'];?> <br />


Tu edad es: <?php echo $_GET['edad'];?> años.

</body>
</html>

$_REQUEST[‘’] Obtiene datos tanto de GET como POST.

10.2. FORMULARIOS CON CONTROLES ESPECIALES

FORMULARIOS CON RADIO BUTTON


El paso de datos de este control es muy simular al de text, pero devuelve el
valor del atributo value de la opción seleccionada.
PRIMERA PAGINA
<html>
<head></head>
<body>
<form method="get" action="p2.php">
<label for="nombre_input">Masculino</label>
<input type="radio" name="sexo" value="masculino"
checked="checked"/>
<label for="nombre_input">Femenino</label>
<input type="radio" name="sexo" value="femenino"
/></br>
<input type="submit">
</form>
</body>

</html>

Compiled by: Mg. Jaime Suasnábar Terrel


SEGUNDA PÁGINA
<?php
$a=$_GET['sexo'];

echo $a;
//Imprime el contenido de value
//Es decir imprime masculino o femenino
?>

FORMULARIOS CON CHECK BOX


Este formulario pasa como parámetro un array, por ello en name colocar el
nombre seguido [], luego en la segunda página llamar $_GET solo el nombre
pero sin corchetes:

PRIMERA PÁGINA
<html>
<head></head>
<body>
<form method="get" action="p2.php">
Mac OS
<input type="checkbox" name="sistema[]" value="mac"
checked="checked"/>
<br />Windows
<input type="checkbox" name="sistema[]" value="windows" />
<br />Apple
<input type="checkbox" name="sistema[]" value="linux" />
<br>
<input type="submit">
</form>

</body>
</html>

SEGUNDA PÁGINA
<?php
//Devuelve "sistema" como array y asignamos a $a
$a=$_GET['sistema'];

//Imprime array $a
echo "$a[0], $a[1], $a[2]"

?>

Compiled by: Mg. Jaime Suasnábar Terrel


FORMULARIOS CON TEXTAREA
Es similar a text.
PRIMER FORMULARIO
<html>
<head></head>
<body>
<form method="get" action="p2.php">
<textarea id="comentario" name="comentario" rows="10"
cols="30">
Algún texto default si deseamos
</textarea>
<input type="submit">
</form>

</body>
</html>

SEGUNDO FORMULARIO
<?php
//Devuelve el comentario
$a=$_GET['comentario'];

//Imprime el comentario
echo "$a"

?>

FORMULARIO CON SELECT DESPLEGABLE


Similar a text
PRIMERA PÁGINA
<html>
<head></head>
<body>
<form method="get" action="p2.php">
<select name="Pais">
<option selected="selected" value="peru">Peru</option>
<option value="brasil">Brasil</option>
<option value="colombia">Colombia</option>
</select><input type="submit">
</form>

</body>
</html>

SEGUNDA PÁGINA
<?php
//Devuelve el Pais seleccionado
$a=$_GET['Pais'];

//Imprime el Pais
echo "$a"

?>

Compiled by: Mg. Jaime Suasnábar Terrel


FORMULARIO CON SELECT MULTIPLE
Similar a check box
PRIMERA PÁGINA
<html>
<head></head>
<body>
<form method="get" action="p2.php">
<select name="Pais[]" size="3" multiple="multiple">
<option selected="selected">Peru</option>
<option>Argentina</option>
<option>Brasil</option>
<option>Colombia</option>
</select>
<input type="submit">
</form>
</body>
</html>

SEGUNDA PÁGINA
<?php
//Devuelve el Pais seleccionado
$a=$_GET['Pais'];

//Imprime el Pais
echo "$a[0], $a[1], $a[2], $a[3]"

?>

11. PROGRAMACION ORIENTADO A OBJETOS CON PHP


Un objeto es una entidad independiente con sus propios datos y programación.
Las ventanas, menúes, carpetas de archivos pueden ser identificados como
objetos; el motor de un auto también es considerado un objeto, en este caso, sus
datos (atributos) describen sus características físicas y su programación (métodos)
describen el funcionamiento interno y su interrelación con otras partes del
automóvil (también objetos).

11.1. ESTRUCTURA DE UNA CLASE EN PHP

La programación orientada a objetos se basa en la programación de clases;


a diferencia de la programación estructurada, que está centrada en las
funciones.

Una clase es una plantilla del que luego se pueden crear múltiples objetos,
con similares características.
Sintaxis
class [Nombre de la Clase] {
[atributos]
[métodos]
}

Compiled by: Mg. Jaime Suasnábar Terrel


Ejemplo
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Persona {
private $nombre;
public function inicializar($nom)
{
$this->nombre=$nom;
}
public function imprimir()
{
echo $this->nombre;
echo '<br>';
}
}

$per1=new Persona();
$per1->inicializar('Juan');
$per1->imprimir();
$per2=new Persona();
$per2->inicializar('Ana');
$per2->imprimir();
?>
</body>
</html>

Los atributos normalmente son privados (private), ya veremos que esto


significa que no podemos acceder al mismo desde fuera de la clase. Luego
para definir los métodos se utiliza la misma sintaxis que las funciones del
lenguaje PHP.
Decíamos que una clase es un molde que nos permite definir objetos. Ahora
veamos cual es la sintaxis para la definición de objetos de la clase Persona:
$per1=new Persona();
$per1->inicializar('Juan');
$per1->imprimir();

Definimos un objeto llamado $per1 y lo creamos asignándole lo que


devuelve el operador new. Siempre que queremos crear un objeto de una
clase utilizamos la sintaxis new [Nombre de la Clase].
Luego para llamar a los métodos debemos anteceder el nombre del objeto
el operador -> y por último el nombre del método. Para poder llamar al
método,éste debe ser definido público (con la palabra Indice public). En el
caso que tenga parámetros se los enviamos:
$per1->inicializar('Juan');

Compiled by: Mg. Jaime Suasnábar Terrel


También podemos ver que podemos definir tantos objetos de la clase
Persona como sean necesarios para nuestro algoritmo:
$per2=new Persona();
$per2->inicializar('Ana');
$per2->imprimir();

Esto nos da una idea que si en una página WEB tenemos 2 menúes,
seguramente definiremos una clase Menu y luego crearemos dos objetos de
dicha clase.
Esto es una de las ventajas fundamentales de la Programación Orientada a
Objetos (POO), es decir reutilización de código (gracias a que está
encapsulada en clases) es muy sencilla.

Lo último a tener en cuenta en cuanto a la sintaxis de este primer problema


es que cuando accedemos a los atributos dentro de los métodos debemos
utilizar los operadores $this-> (this y ->):

11.2. METODO CONSTRUCTOR DE UNA CLASE EN PHP

El constructor es un método especial de una clase. El objetivo fundamental


del constructor es inicializar los atributos del objeto que creamos.
Básicamente el constructor remplaza al método inicializar que habíamos
hecho en el concepto anterior.

Las ventajas de implementar un constructor en lugar del método inicializar


son:
 El constructor es el primer método que se ejecuta cuando se crea un
objeto.
 El constructor se llama automáticamente. Es decir es imposible de
olvidarse llamarlo ya que se llamará automáticamente.
 Quien utiliza POO (Programación Orientada a Objetos) conoce el objetivo
de este método.
Otras características de los constructores son:
 El constructor se ejecuta inmediatamente luego de crear un objeto y no
puede ser llamado nuevamente.
 Un constructor no puede retornar dato.
 Un constructor puede recibir parámetros que se utilizan normalmente
para inicializar atributos.
 El constructor es un método opcional, de todos modos es muy común
definirlo.

Veamos la sintaxis del constructor:


public function __construct([parámetros])
{
[algoritmo]
}

Compiled by: Mg. Jaime Suasnábar Terrel


Ejercicio: Confeccionar una clase CabeceraPagina que permita mostrar un
título, indicarle si queremos que aparezca centrado, a derecha o izquierda.

<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class CabeceraPagina {
private $titulo;
private $ubicacion;
public function __construct($tit,$ubi)
{
$this->titulo=$tit;
$this->ubicacion=$ubi;
}
public function graficar()
{
echo '<div style="font-size:40px;text-align:'.$this-
>ubicacion.'">';
echo $this->titulo;
echo '</div>';
}
}

$cabecera=new CabeceraPagina('El blog del


programador','center');
$cabecera->graficar();
?>
</body>
</html>

11.3. LLAMADA DE MÉTODOS DENTRO DE LA CLASE EN PHP

Hasta ahora todos los problemas planteados hemos llamado a los métodos
desde donde definimos un objeto de dicha clase, por ejemplo:

$cabecera=new CabeceraPagina('El blog del


programador','center');
$cabecera->graficar();

Utilizamos la sintaxis:
[nombre del objeto]->[nombre del método]

Es decir antecedemos al nombre del método el nombre del objeto y el


operador ->

Ahora bien que pasa si queremos llamar dentro de la clase a otro método
que pertenece a la misma clase, la sintaxis es la siguiente:

$this->[nombre del método]

Compiled by: Mg. Jaime Suasnábar Terrel


Es importante tener en cuenta que esto solo se puede hacer cuando estamos
dentro de la misma clase.

Confeccionaremos un problema que haga llamadas entre métodos de la


misma clase.

Problema: Confeccionar una clase Tabla que permita indicarle en el


constructor la cantidad de filas y columnas. Definir otra responsabilidad que
podamos cargar un dato en una determinada fila y columna. Finalmente
debe mostrar los datos en una tabla HTML.
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Tabla {
private $mat=array();
private $cantFilas;
private $cantColumnas;

public function __construct($fi,$co){


$this->cantFilas=$fi;
$this->cantColumnas=$co;
}

public function cargar($fila,$columna,$valor){


$this->mat[$fila][$columna]=$valor;
}

public function inicioTabla(){


echo '<table border="1">';
}

public function inicioFila(){


echo '<tr>';
}

public function mostrar($fi,$co){


echo '<td>'.$this->mat[$fi][$co].'</td>';
}

public function finFila(){


echo '</tr>';
}
public function finTabla(){
echo '</table>';
}

public function graficar(){


$this->inicioTabla();
for($f=1;$f<=$this->cantFilas;$f++){
$this->inicioFila();
for($c=1;$c<=$this->cantColumnas;$c++){
$this->mostrar($f,$c);
}
$this->finFila();

Compiled by: Mg. Jaime Suasnábar Terrel


}
$this->finTabla();
}
}

$tabla1=new Tabla(2,3);
$tabla1->cargar(1,1,"1");
$tabla1->cargar(1,2,"2");
$tabla1->cargar(1,3,"3");
$tabla1->cargar(2,1,"4");
$tabla1->cargar(2,2,"5");
$tabla1->cargar(2,3,"6");
$tabla1->graficar();
?>
</body>
</html>

Vamos por parte, primero veamos los tres atributos definidos,el primero se
trata de un array donde almacenaremos todos los valores que contendrá la
tabla HTML y otros dos atributos que indican la dimensión de la tabla HTML
(cantidad de filas y columnas):
private $mat=array();
private $cantFilas;
private $cantColumnas;

El constructor recibe como parámetros la cantidad de filas y columnas que


tendrá la tabla:
public function __construct($fi,$co){
$this->cantFilas=$fi;
$this->cantColumnas=$co;
}

Otro método de vital importancia es el de cargar datos. Llegan como


parámetro la fila, columna y dato a almacenar:
public function cargar($fila,$columna,$valor) {
$this->mat[$fila][$columna]=$valor;
}

Otro método muy importante es el graficar:


public function graficar(){
$this->inicioTabla();
for($f=1;$f<=$this->cantFilas;$f++)
{
$this->inicioFila();
for($c=1;$c<=$this->cantColumnas;$c++)
{
$this->mostrar($f,$c);
}
$this->finFila();
}
$this->finTabla();
}

Compiled by: Mg. Jaime Suasnábar Terrel


El método graficar debe hacer las salidas de datos dentro de una tabla HTML.
Para simplificar el algoritmo definimos otros cinco métodos que tienen por
objetivo hacer la generación del código HTML propiamente dicho. Así
tenemos el método inicioTabla que hace la salida de la marca table e
inicialización del atributo border:
public function inicioTabla()
{
echo '<table border="1">';
}

De forma similar los otros métodos son:

public function inicioFila()


{
echo '<tr>';
}

public function mostrar($fi,$co)


{
echo '<td>'.$this->mat[$fi][$co].'</td>';
}

public function finFila()


{
echo '</tr>';
}
public function finTabla()
{
echo '</table>';
}

Si bien podíamos hacer todo esto en el método graficar y no hacer estos


cinco métodos, la simplicidad del código aumenta a mediada que
subdividimos los algoritmos. Esto es de fundamental importancia a medida
que los algoritmos sean más complejos.

Lo que nos importa ahora ver es como llamamos a métodos que pertenecen
a la misma clase:

public function graficar()


{
$this->inicioTabla();
for($f=1;$f<=$this->cantFilas;$f++)
{
$this->inicioFila();
for($c=1;$c<=$this->cantColumnas;$c++)
{
$this->mostrar($f,$c);
}
$this->finFila();
}
$this->finTabla();
}

Compiled by: Mg. Jaime Suasnábar Terrel


Es decir le antecedemos el operador $this-> al nombre del método a llamar.
De forma similar a como accedemos a los atributos de la clase.
Por último debemos definir un objeto de la clase Tabla y llamar a los
métodos respectivos:

$tabla1=new Tabla(2,3);
$tabla1->cargar(1,1,"1");
$tabla1->cargar(1,2,"2");
$tabla1->cargar(1,3,"3");
$tabla1->cargar(2,1,"4");
$tabla1->cargar(2,2,"5");
$tabla1->cargar(2,3,"6");
$tabla1->graficar();

Es importante notar que donde definimos un objeto de la clase Tabla no


llamamos a los métodos inicioTabla(), inicioFila(), etc.

11.4. HERENCIA EN PHP

La herencia significa que se pueden crear nuevas clases partiendo de clases


existentes, que tendrá todas los atributos y los métodos de su 'superclase' o
'clase padre' y además se le podrán añadir otros atributos y métodos
propios.
En PHP, a diferencia de otros lenguajes orientados a objetos (C++), una clase
sólo puede derivar de una única clase, es decir, PHP no permite herencia
múltiple.
Hasta ahora todos los problemas planteados hemos llamado a los métodos
desde donde definimos un objeto de dicha clase, por ejemplo:
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php

class Operacion {
protected $valor1;
protected $valor2;
protected $resultado;
public function cargar1($v)
{
$this->valor1=$v;
}
public function cargar2($v)
{
$this->valor2=$v;
}
public function imprimirResultado()
{
echo $this->resultado.'<br>';
}
}

Compiled by: Mg. Jaime Suasnábar Terrel


class Suma extends Operacion{
public function operar()
{
$this->resultado=$this->valor1+$this->valor2;
}
}

class Resta extends Operacion{


public function operar()
{
$this->resultado=$this->valor1-$this->valor2;
}
}

$suma=new Suma();
$suma->cargar1(10);
$suma->cargar2(10);
$suma->operar();
echo 'El resultado de la suma de 10+10 es:';
$suma->imprimirResultado();

$resta=new Resta();
$resta->cargar1(10);
$resta->cargar2(5);
$resta->operar();
echo 'El resultado de la diferencia de 10-5 es:';
$resta->imprimirResultado();

?>
</body>
</html>

Ejercicios
1. Desarrolle una aplicación web para leer un valor de una temperatura en
grados celcius y convertirlo a grados Farengheith, Kelvin y Rankin.
2. Desarrolle una aplicación web para leer un número y mostrar su
equivalente en números romanos.
3. Elaborar una aplicación web para leer un numero, que representa el
monto de venta de un determinado empleado, calcular su sueldo neto
bajo la siguiente regla de negocio:
a) El sueldo básico es de 560.00 soles
b) Si las ventas del empleado superan los 500 soles, pero menor o
igual que 1000 soles recibe una bonificación del 3%.
c) Si las ventas del empleado superan los 1000 soles, pero menor o
igual que 1500 soles recibe una bonificación del 5%.
d) Si las ventas del empleado superan los 15000 soles, pero menor o
igual que 2200 soles recibe una bonificación del 8%.
e) Si las ventas del empleado superan los 2200 soles o más, recibe
una bonificación del 10%.
Sueldo neto = sueldo básico + bonificación.
4. Elaborar una aplicación web con PHP para hallar la suma de los N
primeros números enteros al cubo.

Compiled by: Mg. Jaime Suasnábar Terrel


5. Elaborar una aplicación web para calcular la factorial de un número.
6. Elaborar una aplicaciónweb para leer un número N y mostrar un mensaje
si es primo o no.
7. Elaborar un programa para leer un número N y mostrar la suma de los N
primeros términos de la siguiente serie.
S  1!2!3!4!....  N !
8. Elaborar una aplicación web para generar los N primeros números
primos.
9. Elaborar una aplicación web para construir una tabla de 15 filas y 8
columnas usando un bucle while.
10. Elaborar una aplicación web para mostrar la tabla de multiplicar del 1 al
12.

RESUMEN DE FUNCIONES
FUNCIONES DE FECHA Y HORA.
Gettimeofday Flecha Permite obtener la hora actual
gmdate Flecha Da formato a una fecha/hora GMT/CUT
gmmktime -> Obtiene el valor timestamp UNIX de una fecha GMT
gmstrftime -> Con esta función da formato a una fecha/hora GMT/CUT según las
convenciones locales.
microtime -> Devuelve el valor timestamp UNIX actual con microsegundos.
mktime -> Obtiene el timestamp UNIX de una fecha.
strftime -> Da formato a la hora o fehca local de acuerdo a a las convenciones locales.
time -> Devuelve la hora de la fecha actual en formato timestamp UNIX
strtotime -> Permite procesar cualquier descripción textual de fehca/hora en inglés,
convirtiéndola a timestamp de UNIX.
getdate -> Podemos obtener información de fecha y hora
checkdate -> Esta función verifica que la fecha sea válida, y su sintaxis es la siguiente.

FUNCIONES PARA EL MANEJO DE ERRORES Y LOGS


error_log -> Envía un mensaje de error a algún lugar (teléfono celular, pager, etc.)
error_reporting -> Establece que errores PHP son registrador
restore_error_handler -> Regresa al error handler previo.
set_error_handler -> Establece un error de usuario
trigger_error -> Genera una advertencia de error
user_error -> Genera una advertencia de error

FUNCIONES CON DIRECTORIOS


chroot -> Cambia el directorio raíz
dir -> Clase directorio
closedir -> Cierra el puntero a un directorio abierto
getcwd -> Obtiene el directorio de trabajo actual
opendir -> Abre un puntero a un directorio
readdir -> Lee los archivos de un directorio.

Compiled by: Mg. Jaime Suasnábar Terrel


rewinddir -> Rebobina el puntero del directorio llevándolo a la posición del primer
archivo del mismo.
scandir -> Lista los archivos y directorios ubicados en la ruta especificada.

FUNCIONES PARA EL MANEJO DE ARCHIVOS


basename -> Devuelve la ruta o path correspondiente al nombre del archivo.
chgrp -> Cambia el grupo de un archivo.
chmod -> Cambia permisos de un archivo.
chown -> Cambia el propietario de un archivo.
clearstatcache -> Limpia la caché de estado de un archivo.
copy -> Copia un archivo
dirname -> Devuelve la parte de la ruta o path de un archivo correspondiente al
directorio.
disk_free_space -> Indica el tamaño de espacio libre en un directorio.
disk_total_space -> Indicai el tamaño total de un directorio.
fclose -> Cierra el puntero a un archivo abierto.
feof -> Verifica si el puntero de un archivo ha llegado al final del mismo.
fflush -> Vacía la salida hacia un archivo.
fgetc -> Obtiene un cáracter del archivo apuntado.
fgetcsv -> Obitene una línea del archivo apuntado y extrae los campos CSV
fgets -> Obtiene una linea del archivo apuntado
fgetss -> Obitene una linea del archivo apuntado y quita las etiquetas html.
file_exists -> Verifica si un archivo existe.
file_get_contents -> Lee un archivo entero en una cadena
file_put_contents -> Escribe una cadena sobre un archivo
file -> Lee un archivo completo y lo coloca en un array.
fileatime -> Obtiene la fecha del último acceso a un archivo.
filectime -> Obtiene la fecha de cambio de inode del archivo.
filegroup -> Obtiene el grupo al cual pertenece el archivo.
fileinode -> Obtiene el inode de un archivo.
filemtime -> Obtiene la fecha de última modificación de un archivo
fileowner -> Obtiene el propietario de un archivo.
fileperms -> Obtiene los permisos de un archivo.
filesize -> Obtiene el tamaño de un archivo.
filetype -> Obtiene el tipo de archivo de un archivo.
flock -> Bloqueo de archivo portable y asesorado
fnmatch -> Compara un nombre de archivo contra un patrón
fopen -> Abre un archivo o una url
fpasstrhu -> Saca todos los datos restantes del archivo apuntado.
fputs -> Escribe en el archivo apuntado.
fread -> Lee archivos en plano binario.
fscanf -> Procesa la entrada desde un archivo de acuerdo con un formato.
fseek -> Sitúa el puntero en una posición del archivo.
fstat -> Obtiene información sobre un archivo usando u napuntador de archivo abierto.
ftell -> Preguta sobre la posición del apuntador de lectura/escritura de un archivo.
ftruncate -> Trunca un archivo a la longitud dada.
fwrite -> Escribe archivo en plano binario.

Compiled by: Mg. Jaime Suasnábar Terrel


glob -> Encuentra nombres de ruta coincidentes con un patrón.
is_dir -> Informa si el archivo dado es un directorio.
is_executable -> Informa si el archivo nombrado es ejecutable
is_file -> Informa si el archivo nombrado es un archivo regular.
is_readable -> Informa si el archivo nombrado se puede leer.
is_uploaded_file -> Informa si el archivo fue cargado a través de HTTP_POST
is_writable -> Indica si el nombre de archivo se puede escribir.
is_writeable -> Informa si se puede escribir en el archivo indicado.
link -> Crea un enlace
inkinfo -> Consigue información sobre un enlace.
lstat -> Da información sobre un archivo o enlace simbólico.
mkdir -> Crea un directorio.
move_uploaded_file -> Mueve un archivo cargado a una nueva ubicación específica
parse_ini_file -> Procesa un archivo de configuración.
pathinfo -> Indica información sobre la ruta o path de un archivo.
pclose -> Cierra el archivo de proceso apuntado
popen -> Abre el archivo de proceso apuntado.
readfile -> Muestra el contenido de un archivo
readlink -> Devuelve el objeto de un enlace simbólico
realpath -> Devuelve el nombre de ruta absoluto simplificado
rename -> Renombra un archivo
rewind -> Rebobina la posición del apuntador al archivo a la primera posición del mimso.
rmdir -> Borra un directorio
set_file_buffer -> Fija el buffer de archivo del archivo apuntado
stat -> Da información sobre un archivo
symlink -> Crea un enlace simbólico
tempnam -> Crea un archivo de nombre único
tmpfile -> Crea un archivo temporal
touch -> Cambia la fecha de modificación de un archivo
umask -> Cambia la umask actual
unlink -> Borra un archivo.

FUNCIONES HTTP
header -> Envía una cabecera http
headers_list -> Nos devuelve una lista de cabeceras
headers_sent -> Verifica si ya se han enviado cabeceras, y donde.
setcookie -> Envía una cookie

FUNCIONES DE IMÁGENES
(Para varias de estas funciones debes tener instaladas las librerías GD)
GetImageSize -> Muesta el tamaño de una imagen Gif, JPG o PNG
ImageArc -> Dibuja una elipse parcial
ImageChar -> Dibuja un caracter de forma horizontal
ImageChatUp -> Dibuja un caracter de forma vertical
ImageColorAllocate -> Define un color para una imagen
ImageColorAt -> Obtiene el índice de color de un píxel
ImageColorClosest -> Obtiene el índice del color más cercano al color especificado

Compiled by: Mg. Jaime Suasnábar Terrel


ImageColorExact -> Devuelve el índice del color especificado
ImageColorResolve -> Devuelve el índice del color especificado o su alternativa más
cercana
ImageColorSet -> Establece el color para el índice de la paleta especificada
ImageColorsForIndex -> Obtiene los colores de un índice
ImageColorsTotal -> Encuentra el número de colores de una imagen
ImageColorTransparent -> Define un color como transparente
ImageCopyResized -> Copia y redimensiona una parte de una imagen
ImageCreate -> Crea una nueva imagen
ImagreCreateFromGif -> Crea una nueva imagen a partir de un archivo a una URL
ImageDashedLine -> Dibuja una linea de forma discontinuo
ImageDestroy -> Destruye una imagen para liberar memoria
ImageFill -> Rellea una imagen con el color especificado
ImageFilledPolygon -> Dibuja un polígono con relleno
ImageFilledRectangle -> Dibuja un rectángulo con relleno.
ImageFillToBorder -> Relleno de un color específico
ImageFontHeight -> Devuelve la altura de una fuente
ImageFontWidth -> Devuelve el ancho de una fuente
ImagenGif -> Envia una imagen al navegador web o a un archivo según los parámetros
que reciba.
ImageInterface -> Activa o desactiva el entrelazado
ImageLine -> Dibuja una linea
ImageLoadFont -> Carga una fuente nueva
ImagePolygon -> Dibuja un polígono
ImagePSBBox -> Devuelve el borde que rodea un rectángulo de texto, usando fuentes
PostScript Type1
ImagePSEncodeFont -> Cambia el vector de codificación de caracteres de una fuente.
ImagePSFreeFont -> Libera la memoria usada por un fuente PostScript Type1
ImagePSLoadFront -> Carga una fuente PostScript Type1 desde un archivo.
ImagePSText -> Dibuja una cadena de texto sobre una imagen usando una fuente
PostScript Type1
ImageRectangle -> Dibuja un rectángulo
ImageSetPixel -> Dibuja un pixel
ImageString -> Dibuja una cadena de texto horizontalmente
ImageStringUp -> Dibuja una cadena de texto verticalmente
ImageSX -> Obtiene el ancho de una imagen en píxeles
ImageSY -> Obtiene el alto de una imagen en pixeles
ImageTTFBox -> Devuelve un cuadro que rodea al texto usando fuentes Truetype
ImageTTFText -> Escribe texto en la imagen usando fuentes TrueType

FUNCIONES MATEMÁTICAS
abs -> Valor absoluto
acos -> Arco coseno
acosh -> Coseno hiperbólico inverso
asin -> Arco seno
asinh -> Seno hiérbólico inverso
atan2 -> Arco tangente de dos variables

Compiled by: Mg. Jaime Suasnábar Terrel


atanh -> Atangente hiperbólica inversa
base_convet -> Convierte un número entre bases arbitrarias
BinDec -> Binario decimal
ceil -> Redondea fracciones hacia arriba
cos -> Coseno
cosh -> Coseno hiperbólico
DecBin -> Decimal a binario
DecHex -> Decimal a hexadecimal
DecOct -> Decimal a octal
deg2rad -> Convierte el n´muero en grados a su equivalente en radianes.
exp -> e elevado a...
floor -> Redondea fracciones hacia abajo
fmod -> Devuelve el residuo de punto flotante (módulo) de la divisón de los argumentos.
getrandmax -> Muestra el mayor valor aleatorio posible
HexDec -> Hexadecimal a decimal
hypot -> Devuelve sqrt(num1*num1 + num2*num2)
is_finite -> Encuentra si un valor es un número finito legal
is_infinite -> Encuentra si un valor es infinito
is_nan -> Encuentra si un valor es un número
lcg_value -> Generador lineal congruente combinado.
log10 -> Logaritmo en base-10
log1p -> Devuelve log(1 + numero), computado en una forma que es precisa, incluso,
cuando el valor es cercano a cero.
log -> Logaritmo natural
max -> Encuentra el valor mayor
min -> Encuentra el valor menor
mt_gentrandmax -> Muestra el mayor valor aleatorio posible
mt_rand -> Genera un valor aleatorio mejorado
mt_srand -> Introduce la semilla del generador de números aleatorios mejorado.
OctDec -> Octal a decimal.
pi -> Devuelve el valor de pi.
pow -> Expresión exponencial
rad2deg -> Converte el número en radianes a su equivalente en grados
rand -> Genera un valor aleatorio
round -> Redondea un float
sin -> Seno.
sinh -> Seno hiperbólico
sqrt -> Raíz cuadrada
srand -> Introduce la semilla del generador de números aleatorios
tan -> Tangente
tanh -> Tangente hiperbólica

FUNCIONES PARA LAS BASES DE DATOS MYSQL


mysqli_connect(servidor, usuario, contraseña, baseDatos): devuelve un identificador de
recurso o false si la conexión falla.
mysqli_connect_error(): devuelve una descripción del último error de conexión.
mysqli_query(identificador, sentencia): ejecuta una sentencia SQL.

Compiled by: Mg. Jaime Suasnábar Terrel


mysqli_error(identificador): devuelve una descripción del último error.
mysqli_fetch_assoc(resultado): devuelve la siguiente fila en el resultado o false en caso
contrario.
mysqli_free_result(resultado): libera la memoria empleada por un resultado.
mysqli_close(identificador): cierra la conexión con una base de datos.

FUNCIONES DE RED
checkdnsrr -> Comprueba los registros DNS correspondientes a nombres de máquinas
en Internet o direcciones IP.
dns_get_record -> Recupera los registros de recursos DNS asociados con un nombre de
dominio.
fscokopen -> Abre una conección de dominio Internet o UNIX via sockets.
gethostbyaddr -> Muestra el nombre de un servidor mediante su dirección IP
gethostbyname -> Obtiene la direccion IP correspondiente al nombre de un servidor.
gethostbynamel -> Obtiene una lista de direcciones IP correspodneinte a los servidores.
getmxrr -> Obtiene los registros MX correspondientes a un dominio.
ip2long -> Convierte una cadena que contiene una dirección con puntos del Protocol en
una dirección apropiada.
long2ip -> Convierte una dirección de red Interenet a una cadena de formato estandar
en Internet con puntos.
syslog -> Genera un mensaje del sistema

FUNCIONES DE INFORMACIÓN SOBRE PHP


assert -> Revisa si la aserción es evaluada a FALSE.
dl -> Carga una extensión de PHP en tiempo de ejecución.
extension_lodaded -> Indica si una extensión ha sido cargada.
get_cfg_var -> Obtiene el valor de una opción de configuración de PHP.
get_current_user -> Obtiene el nombre del propietario del programa actual.
get_defined_constants -> Devuelve un array con los nombres de funciones de un
módulo.
get_include_path -> Indica la opción de configuración inlcude_path actual
get_included_files -> Devuelve un array con los nombres de los archivos incluidos o
requeridos en un programa.
get_loaded_extensions -> Devuelve un array con los nombres de todos los módulos
compilados y cargados.
get_magic_quotes_gpc -> Obtiene el valor de la configuración activa actual de las
comillas mágicas gpc
get_magic_quotes_runtime -> Obtiene el valor de la configuración activa actual de
magic_quote_runtime
get_required_files -> Alias de get_included_files
getenv -> Muestra el valor de una variable de entorno
getlastmod -> Obtiene la fecha y hora de la última modificación de una página.
getmyid -> Obtener el GID del propietario de un programa.
getmyinode -> Recupera el inodo del script actual.
getmypid -> Obtiene el ID del proceso PHP.
getmyuid -> Indica el UID del propietario del script PHP.
getopt -> Obtiene opciones de la lista de argumentos desde la línea de comandos.

Compiled by: Mg. Jaime Suasnábar Terrel


getrusage -> Muestra el consumo actual de recursos.
ini_alter -> alias de ini_set()
ini_get_all -> Muestra todas las opciones de configuración.
ini_get -> Recupera el valor de una opción de configuración.
ini_restore -> Restablece el valor de una opción de configuración.
ini_set -> Establece el valor de una opción de configuración.
main -> Página predeterminada para main()
memory_get_usage -> Muestra la cantidad de memoria para PHP
php_ini_scanned_files -> Devuelve la lista de los archivos .ini procesador del directorio
ini adicional.
php_logo_guif -> Obtiene el guid logo.
php_sapi_name -> Devuelve el tipo de interfaz entre el servidor web y PHP.
php_uname -> Muestra información indicando el sistema operativo donde fue
compilado PHP.
phpcredits -> Imprime los créditos de los creadores y colaboradores php.
phpinfo -> Muestra una importante cantidad de información de PHP.
phpversion -> Indica la versión actual de PHP.
putenv -> Permite establece el valor de una variable de entorno.
restore_include_path -> Restablece el valor de la opción de configuración include_path
set_include_path -> Establece la configuración de include_path
set_magic_quotes_runtime -> Establece el valor de la configuración activa actual de
magic_quotes_runtimes.
set_time_limit -> Limita el tiempo máximo de ejecución de un programa. Por defecto
son 30 segundos.
version_compare -> Compara dos cadenas de número de versión 'PHP-Estándar'.
zend_logo_guid -> Obtiene el guid zend.
zend_version -> Obtiene la versión del motor zend actual.

FUNCIONES DE EJECUCIÓN DE PROGRAMAS


escapeshellarg -> Ecapa una cadena a ser usada como argumento del intérprete de
comandos.
escapeshellcdm -> Enmascara los metacaracteres del intérprete de ordenes.
exec -> Permite ejecutar un programa externo.
passthru -> Ejecuta un programa externo y muestra su salida literal.
proc_close -> Cierra un proceso abierto por proc_open() y devuelve el código de salida
del proceso.
proc_get_status -> Obtiene información sobre un proceso abierto por proc_open()
proc_open -> Ejecuta un comando y abrir apuntadores de archivo para entrada/salida
proc_terminate -> Mata un proceso abierto por proc_open()
shell_exec -> Ejecuta un comando mediante el intérprete de comandos y devolver la
salida completa como una cadena.
system -> Ejecuta un programa externo y muestra su salida.

FUNCIONES PARA EL MANEJO DE SESIONES


session_cache_expire -> Informa la caducidad actual del caché.
session_cache_limiter -> Lee y/o cambia el limitador del caché actual.

Compiled by: Mg. Jaime Suasnábar Terrel


session_decode -> Decodifica los datos de una sesión a partir de una cadena codificada
previamente.
session_destroy -> Destruye todos los datos de una sesión, pero no a la sesión en sí.
session_encode -> Codifica los datos de la sesión en una cadena que luegro podrá ser
decodificada.
session_get_cookie_params -> Obtiene los parámetros de la cookie de la sesión actual.
session_id -> Lee y/o cambia el id de la sesión actual.
session_is_registered -> Comprueba si una variable está registrada en la sesión actual.
session_module_name -> Lee y/o cambia el módulo de la sesión actual.
session_name -> Lee y/o cambia el nombre de la sesión actual.
session_regenerate_id -> Regenera el ID de la sesión actual.
session_register -> Permite registrar más de una variable global en la sesión actual.
session_save_path -> Lee y/o cambia la ruta donde se guardan los datos de la sesión
actual.
session_set_cookie_params -> Cambia los parámetros de la cookie de la sesión.
session_set_save_handler -> Establece unas funciones para el almacenamiento de los
datos de la sesión a nivel de usuario.
session_start -> Inicia una sesión.
session_unregister -> Desregistra una variable de la sesión actual.
session_unset -> Elimina todas las variables de la sesión.
session_write_close -> Escrie los datos de la sesión y la finaliza.

FUNCIONES DE CADENAS
AddCSlashes -> Marca una cadena con barras al estilo del C de la forma \.
AddSlashes -> Marca una cadena con barras.
bin2hex -> Convierte datos binarios en su representación en hexadecimal.
chop -> Elimina los espacios en blanco al final de una cadena.
chr -> Devuelve un carácter específico sobre un número dado.
chunk_split -> Divide una cadena en trozos más pequeños.
convert_cyr_string -> Convierte de un juego de caracteres Cirílico a otro.
count_chars -> Muestra información sobre los caracteres usados en una cadena.
crc32 -> Calcula el polinomio crc32 de una cadena.
crypt -> Encripta una cadena mediante DES.
echo -> Imprime una o más cadenas.
explode -> Divide una cadena por otra.
fprintf -> Escribe una cadena con formato por una secuencia.
get_html_translation_table -> Devuelve la tabla de traducción utilizada por
htmlspecialchars() y htmlentities()
hebrev -> Convierte hebreo lógico a texto visual.
hrebevc -> Convierte ebrero lógico a texto visual con conversión de saltos de línea.
html_entity_decode -> Convierte todas las entidades HTML a sus respectivos
caraceteres.
htmlentitites -> Convierte los caracteres aplicables a entidades HTML.
implode -> Une elementos de un array mediante una cadena.
join -> Une elementos de una tabla en una cadena.
levenshtein -> Calcula la distancia levenshtein entre dos cadenas-
localconv -> Muestra información sobre el formato numérico.

Compiled by: Mg. Jaime Suasnábar Terrel


ltrim -> Elimina espacios en blanco del principio de una cadena.
md5_file -> Calcula el resumen criptográfico md5 de un nombre de archivo dado.
md5 -> Calcula el hash md5 de una cadena
metaphone -> Calcula la 'metafona' de una cadena.
money_format -> Permite dar formato a un número como una cadena de moneda.
nl_langinfo -> Consulta información sobre el lenguaje y la localidad.
nl2br -> Convierte nuevas líneas a saltos de líneas HTML
number_format -> Formatea un número con los miles agrupados y separadores
decimales.
ord -> Devuelve al valor ASCII de un cáracter. Función inversa de char.
parse_str -> Divide la cadena en variables.
print -> Imprime en pantalla una cadena.
printf -> Imprime una cadena con formato.
quoted_printable_decode -> Convierte una cadena con marcación imprimible a una
cadena de 8 bits.
rtrim -> Borra los espacios en blanco al final de la cadena.
setlocale -> Fija la información de la localidad.
sha1_file -> Calcula el resumen criptográfio sha1 de un archivo.
sha1 -> Calcula el resumen criptográfio sha1 de una cadena.
similar_text -> Calcula la similitud entre dos cadenas.
soundex -> Calcula la clave soundex en una cadena.
sprintf -> Devuelve una cadena con formato, pero no la imprime
sscanf -> Trocea la entrada de una cadena según un formato dado.
str_ireplace -> Versión 'case insensitive' de str_replace()
str_pad -> Rellena una cadena con otra hasta una longitud definida.
str_repeat -> Repite una cadena
str_replace -> Sustituye todas las de una cadena en otra.
str_rot13 -> Realiza la transofrmación rt13 sobre una cadena.
str_split -> Permite mezclar aleatoreamente una cadena.
str_word_count -> Muestra información sobre las palabras usadas en una cadena.
strcasecmp -> Comapra cadenas insensibles en mayúsculas y minúsculas y seguras en
modo binario.
strchr -> Encuentra la primera aparición de un caracter en una cadena.
strcmp -> Compara cadenas con seguridad binaria.
strcoll -> Compara cadenas sobre la base de la localidad.
strcspn -> Encuentra la longitud del elemento inicial que no coincide con la máscara.
strip_tags -> Elimina las etiquetas HTML y PHP de una cadena.
stripcslashes -> Desmarca la cadena marca don AddCSlashes()
stripos -> Encuentra la posición de la primera ocurrencia de una cadena, insensible a
mayúsculas y minúsculas.
stripslashes -> Desmarca la cadena marcada con AddSlashes().
stristr -> Igual que strrstr, pero sin tener en cuenta mayúsculas o minúsculas.
strlen -> Muestra el largo de una cadena.
strnatcasecmp -> Compara cadenas insensibles a mayúsculas y minúsculas usando un
algoritmo de "orden natural"
strnatcmp -> Compara cadenas usando un algoritmo de "orden natural"
strncasecmp -> Compara de los primeros n caracteres de cadenas.

Compiled by: Mg. Jaime Suasnábar Terrel


strncmp -> Compara de los n primeros caraceteres de cadenas, son seguridad binaria.
strpos -> Encuentra la posición de la primera aparición de una cadena en otra cadena.
strrchr -> Encuentra la última aparición de una cadena en otra cadena.
strrev -> Invierte el orden de una cadena.
strripos -> Encuentra la posición de la última ocurrencia de una cadena en otra,
insensible a mayúsculas y minúsculas.
strrpos -> Encuentr la posición de la última aparición de un carácter en una cadena.
strspn -> Encuentra la longitud del segmento inicial que coincide con la máscara.
strstr -> Encuentra la primera aparición de una cadena.
strtok -> Didive una cadena en elementos.
strtolower -> Pasa a minúsculas una cadena.
strtoupper -> Pasa a mayúsculas una cadena.
strtr -> Traduce ciertos caracteres.
substr_compare -> Compara 2 cadenas, segura con material binario, opcionalmente
insensible a mayúsculas y minpusculas, a partir de un desplezamiento y hasta un límite
de caracteres.
substr_count -> Cuenta el número de apariciones de una subcadena en una cadena.
substr_replace -> Sustituye un texto en una parte de una cadena.
substr -> Devuelve parte de una cadena
trim -> Elimina espacios del principio y del fin de una cadena.
ucfirst -> Pasa a mayúsculas el primer caracter de una cadena.
ucwords -> Pasa a mayúsculas la primera letra de cada palabra de una cadena.
vprintf -> Imprime una cadena con formato.
vsprintf -> Devuelve una cadena con formato.
wordwrap -> Corta una cadena en un número dado de caracteres usando un caracter de
ruptura de cadenas.

FUNCIONES PARA EL TRATAMIENTO DE URL


base64_decode -> Decodifica datos cifrados con el tipo MIME base64
base64_enocde -> Codifica datos en MIME base64
get_meta_tags -> Extrae todo el contenido de atributos de etiquetas meta de un archivo
y devuelve una mtriz, por ejemplo keywords o description.
http_build_query -> Genera una cadena de consulta codificada estilo URL
parse_url -> Analiza una URL y nos devuelve sus componentes.
rawurldecode -> Decodifica cadenas codificas previamente estilo URL
rawurlencode -> Codifica una cadena al estilo URL de acuerdo con el RFC 1738
urldecode -> Decodifica URL cifradas en una cadena de texto.
urlencode -> Codifia una URL en una cadena de texto.

FUNCIONES DE VARIABLES
doubleval -> Obtiene el valor double de una variable
empty -> Indica si una variable está definida.
floatval -> Obtiene el valor flotante de una variable.
get_defined_vars -> Devuelve un array con todas las variables definidas.
get_resource_type -> Devuelve el tipo de recurso.
gettype -> Muestra el tipo de una variable.

Compiled by: Mg. Jaime Suasnábar Terrel


import_request_variables -> IMporta variables GET/POST/Cookie en el contezto global.
intval -> Recupera el valor entero de una variable.
is_array -> Verifica si una variable es un array
is_bool -> Verifica si una variable es de tipo booleana
is_callable -> Verifica que los contenidos de una variable puedan ser llamadoscomo una
función.
is_double -> Verifica si una variable es es un valor double.
is_float -> Verifica si una variable es un flotante
is_int -> Verifica si una variable es un valor entero
is_integer -> Verifica si una variable es un valor entero
is_long -> Verifica si una variable es un valor entero
is_null -> Verifica si una variable es nula
is_numeric -> Verifica si una variable es un número o una cadena númerica
is_object -> Verifica si una variable es un objeto
is_real -> Verifica si una variable es un número real.
is_resource -> Verifica si una variable es un recurso
is_scalar -> Verifica si una variable es un escalar
is_string -> Verifica si una variable es una cadena de caracteres
isset -> Determina si una variable está definida
print_r -> Imprime información legible para humanos sobre una variable
serialize -> Genera una representación apta para almacenamiento de un valor.
settype -> Permite establecer el tipo de una variable
strval -> Obtiene una cadena de caracteres a partir de una variable
unserialize -> Crea u valor PHP a partir de una representación almacenada.
unset -> Destruye una variable pasada como parámetro.
var_dump -> Vuelca la información sobre una variable
var_export -> Imprime o devuelve la representación de cadena de una variable

FUNCIONES PARA EXPRESIONES REGULARES


ereg_replace -> Reemplaza expresiones regulares
ereg -> Busca coincidencia de expresiones regulares
eregi_replace -> Reemplaza expresiones regularse sin diferencias mayúsculas ni
minúsculas
eregi -> Busca coincidencias de expresiones regulares sin diferencias mayúsculas ni
minúsculas
split -> Divide la cadena en elementos de un array.
spliti -> Separa una cadena en un matriz mediante una expresión regular, no sensible a
mayúsculas ni minúsculas.
sql_regcase -> Construye una expresión regular para buscar coincidencias sin diferencias
mayúsculas ni minúsculas

Compiled by: Mg. Jaime Suasnábar Terrel

Você também pode gostar