Utilidad-PWG
  Curso PHP
 
Nuevo curso PHP completo 3200 paginas



Introduccion PHP

PHP es un lenguaje de scripting que permite la generación dinámica de contenidos en un servidor web. El significado de sus siglas es HyperText Preprocessor. Entre sus principales características cabe destacar su potencia, su alto rendimiento, su facilidad de aprendizaje y su escasez de consumo de recursos.

El código PHP puede incluirse dentro del código html de la pagina. Para delimitar la seccion de codigo PHP podemos hacerlo de varias formas:

-Usando las etiquetas <?php y <?
-Usando las etiquetas <? y ?>
-Mediante <script languaje="php"> </script>

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

-El navegador del cliente solicita el documento PHP.


-Llega la solicitud del servidor y el servidor localiza el documento, lanza el intérprete de PHP y ejecuta todo su codigo.


-Una vez ejecutado el código se genera el resultado en HTML y lo devuelve al servidor para que lo transfiera al cliente.


-El servidor transfiere el resultado en HTML y es mostrado en el navegador del cliente.


Variables

PHP es un lenguaje de scripting que permite la generación dinámica de contenidos en un servidor web. El significado de sus siglas es HyperText Preprocessor. Entre sus principales características cabe destacar su potencia, su alto rendimiento, su facilidad de aprendizaje y su escasez de consumo de recursos.

El código PHP puede incluirse dentro del código html de la pagina. Para delimitar la seccion de codigo PHP podemos hacerlo de varias formas:

-Usando las etiquetas <?php y <?
-Usando las etiquetas <? y ?>
-Mediante <script languaje="php"> </script>

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

-El navegador del cliente solicita el documento PHP.


-Llega la solicitud del servidor y el servidor localiza el documento, lanza el intérprete de PHP y ejecuta todo su codigo.


-Una vez ejecutado el código se genera el resultado en HTML y lo devuelve al servidor para que lo transfiera al cliente.


-El servidor transfiere el resultado en HTML y es mostrado en el navegador del cliente.

 

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  

<html>
<body>
<?php
$myvar = "Hola. Este es mi primer script en PHP n";
//Esto es un comentario
es mi primer script en PHP n";
//Esto es un comentario
echo $myvar;
?>
</body>
</html>

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

Lo primero que apreciamos en el script son sus delimitadores. En la primera línea del script vemos <?php que nos indica que comienza un script en PHP, y en la última colocamos ?> para indicar el final del script. Hay que destacar que todas las líneas que se encuentre entre estos delimitadores deben acabar en punto y coma , excepto las sentencias de control (if, swicht, while, etc.).

Como en toda programación, es importante poner muchos comentarios, para lo cual si queremos comentar una sola línea tenemos que poner al principio de la línea // , si lo que queremos es comentar varias utilizaremos los delimitadores /* - */ .

Para que el servidor envié texto utilizaremos la instrucción echo , aunque también podemos utilizar printf de uso similar al del C o Perl .

Finalmente, vemos que la palabra myvar comienza con el signo dólar ( $ ) . Este símbolo le indica a PHP que es una variable. Nosotros le hemos asignado un texto a esta variable, pero también pueden contener números o tablas (arrays). Es importante recordar que todas las variables comienza con el signo dólar . También habréis observado que el texto que le asignamos a la variable termina con n , esto no se imprime sirve para indicarle al navegador una nueva línea.


Operadores PHP


Al desarrollar cualquier programa empleamos normalmente operadores que nos sirven para realizar diversas operaciones que le otorgan un cierto grado de complejidad a nuestros programas, ya que, de otro modo el programa realizaría siempre lo mismo y por tanto no seria un programa útil.

 

Operadores aritméticos
+ Suma dos valores
- Resta dos valores (o pasa a negativo un valor)
* Multiplica dos valores
/ Divide dos valores
% Resto de dividir dos valores
++ Incremento en una unidad
-- Decremento en una unidad

Operadores de asignación
= Asigna a la parte derecha el valor izquierdo
+= Realiza la suma de la derecha con la izquierda y la asigna a la derecha
-= Realiza la resta de la derecha con la izquierda y la asigna a la derecha
*= Realiza la multiplicación de la derecha con la izquierda y la asigna a la derecha
/= Realiza la división de la derecha con la izquierda y la asigna a la derecha
%= Se obtiene el resto y se asigna
.= Concatena el valor de la izquierda con la derecha y lo asigna a la derecha


Operadores lógicos
! Operador NO o negacion.Si era true pasa a false y viceversa
and Operador Y, si ambos son verdaderos vale verdadero
or Operador O, vale verdadero si alguno de los dos es verdadero
xor Verdadero si alguno de los dos es true pero nunca ambos
&& True si ambos lo son
|| True si alguno lo es

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


Estructura de Control

A partir de ahora vamos a dotar de mas "dinamismo" a nuestros scripts ya que a partir de diversas estructuras indicaremos que acción debe realizar en cada caso, además también nos dará la posibilidad de realizar una misma acción multitud de veces con tan solo una línea de código.

 

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/es){
   acción a realizar;
}
else{
   acción a realizar en caso de que no se cumpla;
}

Veamos un ejemplo básico para entenderlo mejor:

if($edad>=18){
   Comprar cerveza;
}
else{
   echo "No puedes comprar cerveza porque no tienes 18 años";
}

e incluso podemos realizar condicionales mas completas como el siguiente caso:

if(($edad>=18)&&($dinero>0)){
   Puedes comprar cerveza porque tienes 18 y tu dinero es mayor que 0;
}
else{
   echo "O no tienes pelas o no tienes los 18" ;
}

 

Estructura SWITCH

Toma distintas decisiones en función de distintos estados de la variable.Su sintaxis es la siguiente:

switch(expresión){
   case valor1:
     sentencia a ejecutar cuando la expresión tiene como valor valor1
break
   case valor2:
     sentencia a ejecutar cuando la expresión tiene como valor valor2
break
   case valor3:
     sentencia a ejecutar cuando la expresión tiene como valor valor3
break
   default:
     sentencia que se ejecutar por defecto cuando no se cumpla ninguna de las condiciones anteriores

 

Bucle FOR

El bucle for se usa para repetir una misma operación un número determinado de veces. Su sintaxis es la siguiente:

for(inicialización;condición;actualización){
   sentencia a ejecutar mientras se cumpla la condición
}

El bucle for esta compuesto de 3 partes:


- Inicialización: Se ejecuta tan solo al iniciar por primera vez el bucle.En esta parte se suele colocar la variable que contara el numero de veces que se repite el bucle.
- Condición: Es la condición que se evaluara cada vez que se inicie el bucle.Esta condición es la que determina la duración del bucle.
- Actualización: Sirve para indicar los cambios que queremos ejecutar en las variables cada vez que se ejecuta el bucle.

Un ejemplo de su uso seria el siguiente:

for($i=1;i<=10;i++){
    echo "El número actual es".$i;
}

De esta forma escribiría todos los números contenidos entre 0 y 10.

 

Bucles WHILE y DO WHILE

Bucle WHILE
Este bucle se usa cuando queremos repetir la ejecución de unas sentencias un número indefinido de veces. Su sintaxis es la siguiente:

while(condición){
   sentencia a ejecutar
}

Para entender mejor el uso de while nos serviremos del siguiente ejemplo:

while($color != "rojo"){
   color= dame un color;
}

Este es un ejemplo de lo que se puede hacer con while. En este caso siempre y cuando el color no sea rojo nos dirá que introduzcamos un color.

 

Bucle DO...WHILE

Este bucle se usa cuando no sabemos el número de veces que va a ejecutarse un bucle pero lo que si tenemos claro es que por lo menos una vez si que se ejecutara la accion.Su sintaxis es la siguiente:

do{
    sentencia del bucle
}while(condicion)

 

BREAK y CONTINUE

 

BREAK

Se usa para detener el bucle y dejar de interpretar el código que sigue después de el break

 

CONTINUE

Sirve para volver al principio del bucle desde cualquier parte del bucle.


Funciones en PHP

Una de las herramientas mas importantes en cualquier lenguaje de programación son las funciones. Una función consiste en un conjunto de rutinas y acciones que a lo largo del script van a ser ejecutadas multitud de veces agrupados en una FUNCION y desde cualquier punto del script puede ser llamada y ejecutada. A su vez, esta función puede recibir parámetros externos de los cuales dependa el resultado de una función.

Las funciones deben ser colocadas siempre antes de realizar la llamada a la función (como es lógico). La sintaxis de una función es la siguiente:

function nombre(parámetros){
   instrucciones de la función
}

para llamar a la función sería de la siguiente forma: nombre(parámetros)

Un ejemplo para entender el uso de funciones es el siguiente:
Crearemos una función que realice la suma de dos números y muestre el resultado

function sumar($sumando1,$sumando2){
  $ suma=$sumando1+$sumando2
echo $sumando1."+".$sumando2."=".$suma;
}

sumar(5,6)

Un hecho relevante que cabe destacar es que las variables que declaremos dentro de la función solo existirán o tendrán dicho valor dentro de la función.

Existen casos en los cuales no sabemos el número de parámetros que le pasaremos a la función y en estos casos debemos usar las funciones creadas al efecto como son:

func_num_args() Numero de parámetros que se le han pasado a la función
func_get_args() Devuelve un elemento de los que forman la lista de argumentos


Inclusion de codigo desde un fichero

En ocasiones es necesario cargar el mismo archivo en diferentes scripts y de esa forma no repetir el mismo código en diversos scripts. Parece entonces razonable que debe existir algún método o forma de cargar algún archivo externo y de esa forma generar páginas web mas dinámicas.

A este efecto PHP dispone de dos instrucciones para poder cargar archivos:

require("archivo");
Cuando se incluye un archivo con require el interprete abandona el modo PHP y entra en modo HTML, una vez abierto el fichero lo incluye hasta su ultima línea y posteriormente abandona el modo HTML para volver a posicionarse en el modo PHP. Su principal diferencia con include() es que no permite la carga condicional.

include("archivo");
Cuando se incluye un archivo con require el interprete abandona el modo PHP y entra en modo HTML, una vez abierto el fichero lo incluye hasta su ultima línea y posteriormente abandona el modo HTML para volver a posicionarse en el modo PHP. Permite la carga condicional, es decir, que podemos cargar un archivo o otro según si se cumple o no una condición.

 

Matrices (Array)

En la realización de un script en PHP en múltiples ocasiones existen variables que tienen información similar y se procesan de forma semejante. Para ello PHP (y otros lenguajes) poseen un elemento denominado array. Un array es un conjunto de variables agrupadas bajo un único nombre. Cada variable dentro de la matriz se denomina elemento. Dentro de la misma matriz pueden existir variables de diferentes tipos y no es necesario que sean todas del mismo tipo.

Hay que diferenciar entre los dos tipos de matrices existentes:
- Indexada: Aquella cuyo acceso a los elementos se realiza por la posición que ocupan dentro de la estructura (se inician siempre desde la posición 0). Ejemplo: $amigos[0]
- Asociativa: Es aquella en la que los elementos están formados por pares clave-valor y el acceso se realiza proporcionando una determinada clave. Ejemplo: $amigos['edad']

Para crear matrices en PHP existen dos formas:

- De forma implícita, que consistiría en indicarle el elemento(ya sea proporcionando su posición o su clave).Ejemplo: $nombres[0]='Javier';
En caso de no indicarle una posición el array tomara el valor siguiente al ultimo valor introducido.Ejemplo: $nombres[]='Lucas' // tomaría como valor 1 ya que lo ultimo introducido era 0.

- Mediante array() en el cual le pasamos los elementos como parámetros. En caso de matriz indexada toman la posición que ocupan en la creación de la matriz, mientras que los de la matriz asociativa se les asigna su valor mediante "=>".Ejemplo: $amigo=array('Nombre'=>'Jose','Direccion'=>'Neopatria 21');

Cabe destacar que PHP no solo se limita a la existencia de matrices por sí solo sino que existen matrices de matrices, o lo que es lo mismo, matrices multidimensionales. Ejemplo: $amigos[2]['Pedro']

 

Recorrido de una matriz

Disponemos de diversas herramientas para poder acceder a los elementos de una matriz. En cada momento se mantiene una referencia del elemento de la matriz al que se tiene acceso, por tanto, para recorrer una matriz bastará con modificar dicha referencia. En caso de una matriz indexada el recorrido se realizara mediante un bucle y para ello debemos saber el número de elementos totales que posee la matriz. Para ello nos basamos de la función count(variable) donde variable representa la variable de la que se quiere obtener el número de elementos. Si variable es una matriz devuelve el número de elementos que tiene, devuelve 1 si solo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún valor.

Otra función que nos permite saber el número de elementos es sizeof(matriz) .
Para acceder a los elementos de una matriz asociativa debemos usar la función ecah() que recupera el par formado por clave y valor y además avanza una posición de puntero. Su sintaxis es each(matriz) y los valores que devuelve la matriz asociativa son los siguientes:

Clave Significado
0 Nombre de la clave
1 Valor asociativo de la clave
key Nombre de la clave
value Valor asociado a la clave

La función que realiza el constructor list(variable1,variable2...variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parámetro.

 

Navegación sobre matrices

Cuando se trata de matrices indexadas la navegación es sencilla ya que tan solo basta acceder al elemento que queremos mostrar, pero al tratarse de alguna matriz asociativa no se puede aplicar el mismo tratamiento. Para ello existen un conjunto de funciones prefabricadas que nos permiten realizar multitud de acciones:

Sintaxis Acción
reset(matriz); El puntero interno vuelve a la primera posición
end(matriz); El puntero interno va a la ultima posición
next(matriz); El puntero va al elemento siguiente
prev(matriz); Accede al elemento anterior
current(matriz); Devuelve el contenido del elemento actual

 

Inserción de elementos

Para la inserción de elementos dentro de un array existen una serie de funciones que nos permiten añadir elementos. Entre ellas destacamos:

array_push(matriz,variable1,variableN);
Añade elementos al final de la función y su longitud se incrementara tantos elementos como se hayan añadido

array_unshift(matriz,variable1,variableN);
Añade elementos al principio de la función desplazando a los otros tantas posiciones como elementos haya.

array_pad(matriz,nuevo_tamaño,valor_relleno);
Aumenta el tamaño de la matriz empleando un valor proporcionado como relleno.

 

Eliminación de elementos

array_shift(matriz);
Elimina el primer elemento de la matriz

array_pop(matriz);
Elimina el último elemento de la matriz

array_splice(entrada,pos_ini,[tamaño],[sustitutos]);
Se usa para reemplazar o borrar el contenido de una porción de matriz, para ello debemos especificar la posición desde la cual queremos iniciar el borrado o sustitución, el tamaño o número de elementos que se verán afectados y los sustitutos (en caso que deseemos sustituirlo por algún elemento).

array_keys(matriz,[valor buscado]);
Se emplea cuando deseamos eliminar un elemento cuya posición desconocemos.

array_values(matriz);
Devuelve una matriz indexada con todos los valores almacenados en la matriz pasada como parámetro.

 

Manipulación masiva de matrices

array_walk(matriz,nombre_de_la_funcion,lista_parametros);
Se emplea para realizar el mismo proceso definido en la función en todos los elementos incluidos.

 

Obtención de submatrices

array_slice(matriz,posicion,tamaño);
Permite extraer una secuencia de elementos de una matriz. Los parámetros a pasarle son la matriz en la cual queremos extraer dichos elementos, la posición desde la que se inicia la extracción y el tamaño de la extracción (posiciones que abarcamos a partir de la inicial).

 

Ordenación de matrices

Criterio Función
Orden ascendente(matriz indexada) sort(matriz)
Orden descendente(matriz indexada) rsort(matriz)
Orden ascendente por valor(matriz asociativa) asort(matriz)
Orden descendente por valor(matriz asociativa) arsort(matriz)
Orden ascendente por clave(matriz asociativa) ksort(matriz)
Orden descendente por clave(matriz asociativa) krsort(matriz)

 


Otras funciones

En este apartado se comentaran una serie de funciones (no todas porque seria imposible) que nos pueden servir en cierto momento.

compact() Devuelve una matriz asociativa a partir de un numero indeterminado de parámetros
extract() Crea variables desde matriz asociativa
array_unique() Devuelve matriz sin datos repetidos ya que algunos se eliminan
array_reverse() Devuelve matriz con mismos elementos pero en orden inverso
shuffle() Modifica el orden de elementos de forma aleatoria
array_count_values() Devuelve una matriz asociativa que contiene frecuencias de repetición de los valores de la matriz
in_array() Permite comprobar si un valor esta en la matriz
array_merge() Combina elementos de dos matrices en 1.


Cadenas de caracteres

En este capítulo se comentaran todos los pormenores relacionados con cadenas de caracteres, las funciones existentes, etc.

 

Cadenas de caracteres

Una cadena consiste en una secuencia de caracteres que se encuentran comprendidos entre unos delimitadores que pueden ser:
-Comillas simples ' '
-Comillas dobles " "
-Documento incrustado <<< >>>

En caso de que se desee por ejemplo unas " " dentro de las comillas de la cadena de caracter es necesario realizar la acción que se denomina escapar un caracter que consiste en precederlo de una es decir ". Los caracteres especiales que pueden aparecer dentro de un documento con delimitación son:

Secuencia Significado
n Nueva línea
r Retorno de carro
t Tabulación horizontal

Barra invertida
$ Signo de dólar
" Comillas dobles
[0-7]{1,3} Caracter ASCII que coincide con el numero octal
x[0-9A-Fa-f]{1,2} Caracter ASCII que coincide con el numero hexadecimal

El caso de documento incrustado es diferente al de ambas comillas. Su sintaxis es la siguiente:

<<<Identificador
Cadena de caracteres
Identificador;

El resultado obtenido con documento incrustado es el texto mostrado igual que se ha introducido.

La función chr(valor) nos devuelve en una variable del tipo cadena el caracter de la tabla de códigos ASCII asociado a un valor que recibe como parámetro, el valor que se pase debe estar entre 0 y 255.
La función ord(cadena) nos devuelve un número entero que se corresponde con el código ASCII del primer caracter que recibe como parámetro.

Visualización de cadenas

- Echo: Es el modo de visualización mas empleado. Su sintaxis es la siguiente: echo "texto";
- Print: Es la mas sencilla de todas y se encarga de mostrar una cadena de caracteres sobre su salida estándar. No soporta ningún formato de salida y su sintaxis es: print(cadena);
- Printf(formato,[valores]); Su funcionamiento es el mismo que en el caso anterior. La única diferencia es que este soporta formatos de salida como su alineación (por defecto a la izquierda), valor numérico ( numero mínimo de caracteres que deben mostrarse), numero de decimales y tipo de datos cuyas posibilidades son:

Símbolo Significado
% Representa el símbolo del porcentaje
b El argumento se trata como nº entero y se representa en codificación binaria.
c El argumento se trata como nº entero y se muestra el caracter cuyo código ASCII se corresponde con el valor.
d El argumento se trata como nº entero y se representa en codificación decimal sin parte fraccionaria
f El argumento se trata como un nº de tipo double y se representa como un decimal sin coma flotante
o El argumento se trata como un nº entero y se representa en codificación octal
s El argumento se trata y representa como una cadena de caracteres
x El argumento se considera un nº entero y se representa en codificación hexadecimal en minúsculas
X El argumento se considera un nº entero y se representa en codificación hexadecimal en mayúsculas

- Sprintf(formato,[valores]); su funcionamiento es idéntico a printf. Lo único que la cadena resultante de aplicarle un determinado formato se guarda en una variable.

 

Alteración del contenido

En ocasiones es necesario emplear dichas funciones para alterar el formato de salida de las cadenas. Las funciones empleadas para modificar dicho formato son:

- chop(cadena); Devuelve la cadena de caracteres con los caracteres de blanco y nueva línea eliminados
- ltrim(cadena); Elimina los blancos que aparecen a la derecha de una cadena de caracteres
- rtrim(cadena) ; Elimina los blancos que aparecen por la derecha en una cadena de caracteres
- trim(cadena); Elimina los blancos que aparecen a izquierda y derecha de la cadena de caracteres
- str_pad(cadena,longitud,relleno,lugar); Comprueba si la longitud es menor que el valor indicado, si es así añade los caracteres necesarios.El lugar de añadir puede ser:
str_pad_left añade por la derecha(opción por defecto), str_pad_right añade por la izquierda y str_pad_both añade por ambos extremos.
- str_repeat(caracter,numero_veces); Repite un caracter el numero de veces indicado
- strtolower(cadena); Pasa toda la cadena a letras minúsculas
- strtoupper(cadena); Pasa toda la cadena a letras mayúsculas
- ucfirst(cadena); Pasa a mayúscula el primer caracter de una cadena
- ucwords(cadena); Pone en mayúsculas el primer caracter de cada palabra de la cadena
- str_replace(subcadena1,subcadena2,cadena); Sustituye una palabra por otra dentro de una cadena
- strtr(cadena,originales,traducidos); Traduce ciertos caracteres .Ejemplo: $persona=strt($persona,"áéíóú","a,e,i,o,u"); de esta forma cambiaría todas las vocales con acento por vocales sin acento.
- substr_replace(cadena,nueva,comienzo,longitud); Sustituye una porción del contenido de una cadena

 

Acceso al contenido

- strlen(cadena); Indica el nº de caracteres de una cadena
- count_chars(cadena,modo); Numero de repeticiones de un caracter en una cadena. Los modos posibles son:

0->Matriz indexada con frecuencia de aparición de todos los caracteres del código ASCII
1->Matriz con caracteres ASCII con frecuencia mayor que 0
2->Matriz con caracteres que no aparecen en la cadena
3->Cadena con caracteres usados en el código ASCII
4->Cadena con caracteres no usados en el código ASCII

- substr_count(cadena,subcadena); Frecuencia de aparición de una cadena
-strchr(cadena,caracter); Devuelve la subcadena que comienza en la primera aparición del caracter indicado
- strstr(cadena,subcadena); Localiza subcadena dentro de la cadena original
- stristr(cadena,subcadena); Igual que la función anterior pero sin distinción entre mayúsculas y minúsculas
- strpos(cadena,subcadena); Primera ocurrencia de una cadena en otra
- strrpos(cadena,subcadena); Ultima ocurrencia de una cadena en otra
- ord(cadena); Devuelve el valor ASCII de un caracter
- substr(cadena,comienzo,longitud); Porción de texto que empieza en una posición y tiene una longitud
- strcmp(cadena1,cadena2); Compara dos cadenas siendo sensible a mayúsculas y minúsculas
- strcasecmp(cadena1,cadena2); Compara dos cadenas sin ser sensible a mayúsculas y minúsculas
- strncmp(cadena1,cadena2,tamaño); Compara los N primeros caracteres de una cadena
- strnatcmp(cadena1,cadena2); Sensible a mayúsculas y minúsculas. Compara dos cadenas.
- strnatcasecmp(cadena1,cadena2); No sensible a mayúsculas y minúsculas. Compara dos cadenas.
- chunk_split(cadena,longitud,separador); Coge una cadena de caracteres e introduce separadores a una distancia determinada. No modifica el original sino que es una función nueva.
- explode(separador,cadena,limite); Permite obtener una matriz de cadenas de caracteres extraídas del original.
- implode(separador,elementos); Junta en una cadena los elementos de una matriz usando como concatenación el separador pasado como parámetro.
- parse_str(cadena); Permite extraer y crear variables que forman parte de una cadena que se corresponde con un "query string" recibido de una URL.

 

*Apoyo a HTML

- addcslashes(cadena,lista); Devuelve una cadena que tiene escapados todos los caracteres como parámetro.
- addslashes(cadena); Devuelve una cadena que tiene escapados todos los caracteres lógicos
- stripcslashes(); y stripslashes(); Reciben cadenas que pueden contener caracteres de de escapes y los desescapan
- quotemeta(cadena); Esacapa los caracteres especiales
- htmlspecialchars(cadena); Lleva a cabo conversiones como &->&amp,"->&quot
- htmlentities(); Convierte todos los caracteres a entidades html. á pasa a ser &aacute;
- get_html_translation_table(htmlentities o html_specialchars); Obtiene la relación de traducción de cada caracter especial.
- array_flip(); Intercambia las claves por los valores en array asociativo.
- get_meta_tags(nombre_fichero,include_path); Devuelve todos los meta tags que contiene un HTML.
- strip_tags(cadena,mostrar_tags); Omite etiquetas PHP y HTML , lo de mostrar_tags son las cadenas HTML y PHP no deben ser omitidas en la lectura.
- n12br(cadena); Permite sustituir saltos de línea por <br>
- parse_url(cadena_url); Devuelve una matriz asociativa con los siguientes campos:

Campo Significado
scheme Http
host Ip o DNS
port puerto
user nombre usuario
password contraseña
path path completo al recurso
query query string con datos al recurso
urldecode decodifica la información
urlencode Codifica la información

Clases

Las Clases son máximo exponente de la Programación Orientada a Objetos (POO). PHP no es un lenguaje orientado a objeto, pero implementa las características que permiten definir las clases.

Pero, ¿qué son las Clases y para que sirven?. Empecemos por los segundo, sirven hacer el código más legible, y lo que es más importante, reutilizable. Escribir una Clase es sin duda más largo que escribir el código directamente, pero a la larga es más rentable por su portabilidad a otras aplicaciones y su mantenimiento.

Las Clases no son más que una serie de variables y funciones que describen y actúan sobre algo. Por ejemplo, vamos a crear la clase automóvil , la cual tendrá diversas variables, $color , $modelo , $marca , $potencia , $matricula y habrá una serie de funciones que actuarán sobre la clase automóvil como Precio() , Acelerar() , Frenar() , Girar() y Reparar() .

Como ejemplo vamos a crear la clase mysql , que nos servirá para realizar consultas a las bases de datos MySQL.

<?php

class DB_mysql {

/* variables de conexión */

var $BaseDatos;

var $Servidor;

var $Usuario;

var $Clave;

/* identificador de conexión y consulta */

var $Conexion_ID = 0;

var $Consulta_ID = 0;

/* número de error y texto error */

var $Errno = 0;

var $Error = "";

/* Método Constructor: Cada vez que creemos una variable

de esta clase, se ejecutará esta función */

function DB_mysql($bd = "", $host = "localhost", $user = "nobody", $pass = "") {

$this->BaseDatos = $bd;

$this->Servidor = $host;

$this->Usuario = $user;

$this->Clave = $pass;

}

/*Conexión a la base de datos*/

function conectar($bd, $host, $user, $pass){

if ($bd != "") $this->BaseDatos = $bd;

if ($host != "") $this->Servidor = $host;

if ($user != "") $this->Usuario = $user;

if ($pass != "") $this->Clave = $pass;

// Conectamos al servidor

$this->Conexion_ID = mysql_connect($this->Servidor, $this->Usuario, $this->Clave);

if (!$this->Conexion_ID) {

$this->Error = "Ha fallado la conexión.";

return 0;

}

//seleccionamos la base de datos

if (!@mysql_select_db($this->BaseDatos, $this->Conexion_ID)) {

$this->Error = "Imposible abrir ".$this->BaseDatos ;

return 0;

}

/* Si hemos tenido éxito conectando devuelve 

el identificador de la conexión, sino devuelve 0 */

return $this->Conexion_ID;

}

/* Ejecuta un consulta */

function consulta($sql = ""){

if ($sql == "") {

$this->Error = "No ha especificado una consulta SQL";

return 0;

}

//ejecutamos la consulta

$this->Consulta_ID = @mysql_query($sql, $this->Conexion_ID);

if (!$this->Consulta_ID) {

$this->Errno = mysql_errno();

$this->Error = mysql_error();

}

/* Si hemos tenido éxito en la consulta devuelve 

el identificador de la conexión, sino devuelve 0 */

return $this->Consulta_ID;

}

/* Devuelve el número de campos de una consulta */

function numcampos() {

return mysql_num_fields($this->Consulta_ID);

}

/* Devuelve el número de registros de una consulta */

function numregistros(){

return mysql_num_rows($this->Consulta_ID);

}

/* Devuelve el nombre de un campo de una consulta */

function nombrecampo($numcampo) {

return mysql_field_name($this->Consulta_ID, $numcampo);

}

/* Muestra los datos de una consulta */

function verconsulta() {

echo "<table border=1>n";

// mostramos los nombres de los campos

for ($i = 0; $i < $this->numcampos(); $i++){

echo "<td><b>".$this->nombrecampo($i)."</b></td>n";

}

echo "</tr>n";

// mostrarmos los registros

while ($row = mysql_fetch_row($this->Consulta_ID)) {

echo "<tr> n";

for ($i = 0; $i < $this->numcampos(); $i++){

echo "<td>".$row[$i]."</td>n";

}

echo "</tr>n";

}

}

} //fin de la Clse DB_mysql

?>

Como habreis observado, para crear una clase utilizamos la sentencia class , y además hemos creado una función con el mismo nombre que la clase, a esa función se le llama constructor y se ejecutará cada vez que definamos una variable de esa clase. No es obligatorina variable de esa clase. No es obligatorio crear un constructor en una definición de clase. 

Otra cosa importante en las clases es el operador -> , con el que indicamos una variable o método (parte derecha del operador) de una clase (parte izquierda del operador). Para hacer referencia a la clase que estamos creando dentro de su definición, debemos utilizar this .

Y ahora veamos un ejemplo de la clase que hemos creado, y supongamos que el código anterior lo hemos guardado en un fichero llamado clase_mysql.inc.php .

<body>

<html>

<?php

require ("clase_mysql.inc.php");

$miconexion = new DB_mysql ;

$miconexion->conectar("mydb", "localhost", "nobody", "");

$miconexion->consulta("SELECT * FROM agenda");

$miconexion->verconsulta();

?>

</body>

</html>


fuente: http://www.monografias.com/trabajos58/manual-php/manual-php.shtml#xintro

 
  © 2009 Utilidad-pwg.es.tl Derechos Reservados  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis