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 comienzan 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 EN 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 |
– | |
* | 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 negación. 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 |
ESTRUCTURAS 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 acción. 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
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.
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 carácter es necesario realizar la acción que se denomina escapar un carácter 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} | Carácter ASCII que coincide con el numero octal |
x[0-9A-Fa-f]{1,2} | Carácter 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 carácter 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 carácter 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 carácter 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 carácter de una cadena – ucwords(cadena); Pone en mayúsculas el primer carácter 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 carácter 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 &->&,"->" – htmlentities(); Convierte todos los caracteres a entidades html. á pasa a ser á – 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>
Página anterior | Volver al principio del trabajo | Página siguiente |