lunes, 3 de mayo de 2010

ARRAYS Y FUNCIONES

¿Que es un array?
Un array (o matriz, como tambien son llamados) es un tipo de variable, con la singularidad de que no contiene un único valor, sino un conjunto de valores referenciados con un índice. Aunque al principio puedan parecer poco amistosos, su uso es utilisimo e imprescindible, y de hecho puedes encontrarlos en todos los lenguajes de programación.

La sintaxis es muy parecida a la usada con el resto de variables, con diferencias en la forma en que el array es creado y lógicamente, la forma en que su valor es recuperado (pues teniendo un valor múltiple, tenemos que indicar que valor, o en que forma, deseamos que nos sea devuelto).

Creando arrays
Hay dos formas de crear arrays, estatica o dinamicamente

Podemos crear arrays de forma estática usando la construcción php array() con la siguiente sintaxis:

Array array([index]=>[valor], [index2]=>[valor], ...);

EJEMPLO

$a = ("abc", "def", "ghi");

Asignando valores

$a[0] = "abc";
$a[1] = "def";
$a[2] = "ghi";

Todo lo anterior en etiqueta PHP

EJEMPLO


El siguiente fragmento de codigo crea un array con los nombres de imàgenes que almacenamos en nuestro sitio y casa vez que se recarga la pàgina cambia el fondo co la funciòn shuffle






FUNCIONES
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)


VARIABLES DE SISTEMA

Dada su naturaleza de lenguaje de lado servidor, PHP es capaz de darnos acceso a toda la serie de variables que nos informan sobre nuestro servidor y sobre el cliente. La informaciòn de estas variables es atribuida por el servidor y en ningùn caso nos es posible modificar sus valores

directamente mediante el script. Para hacerlo es necesario influir directamente sobre la propiedad que definen.


Existen multitud de variables de este tipo, algunas sin utilidad aparente y otras realmente interesantes y con una aplicaciòn directa para nuestro sitio web. Aqui un ejemplo de ellas y las informacion que nos aportan:


  • $HTTP_USER_AGENT

Nos informa principalmente sobre el sistema operativo y tipo de versiòn de navegador utilizado por el internauta.Su principal utilidad radica en que, a partir de esta informaciòn, podemos redireccionar nuestros usuarios hacia pàginas optimizadas para su navegador.



  • $DOCUMENT_ROOT

Nos devuelve el paht fisico en el que se encuentra alojada la pagina en el sevidor.


EJEMPLO DE CODIGO


Tomado de :http://aprendeenlinea.udea.edu.co/lms/moodle/mod/resource/view.php?id=13980

martes, 27 de abril de 2010

ENVIO Y RECEPCION DE DATOS


La primera forma es a través de formularios. Los datos en un formulario se envía mediante el método indicado en el atributo METHOD de la etiqueta FORM(Con el parámetro method, estamos indicando la forma en la que se enviarán las variables del formulario), los dos métodos posibles son GET y POST. Lo habitual es usar el método POST.
Si tomamos como elección GET, todas las variables se enviarán por la dirección html (seran visibles desde la URL). es decir, cuando recarguemos la página web al haber enviado el formulario, saldrá algo así:http://www.dominio.com/index.php?nombre=1&tipo=2…
Es decir, ¡las variables aparecen en la barra de direcciones! Esto, para envío de formularios, no es lo normal pues estamos mostrando todos los datos del envío y pueden ser muchísima información, alguna incluso, confidencial que el usuario no debe enterarse. Es por ello por lo que, cuando tratamos con formularios, usamos el método POST.
Este método consiste, básicamente en enviar las variables de forma “oculta” para que nadie pueda ver los datos que ha enviado al pulsar el botón de envío de formulario.




Envio mediante Metodo GET

Envio mediante metodo POST


Como recogemos los Valores de GET y POSTPara recoger los valores de un formulario donde se ha usado el método POST se debe escribir:$nombre=$_POST['nombre'];Es decir, si cogemos directamente la variable $nombre, nos encontraremos con que no vale nada.Si resulta que la variable se ha enviado usando el método GET o a través de un enlace HTML, habrá que declarar lo siguiente:$nombre=$_GET['nombre'];El procedimiento es similar a lo anteriormente comentado

METODO GET Y POST

* method = " POST / GET " . Indica el método según el que se van a transferir las variables del formulario. POST envía los datos, normalmente al programa CGI definido en action o por correo si en action hemos utilizado mailto. El método GET añade los argumentos del formulario al URL recogido en action (utilizando como separador de las variables la "?"). El método de uso más normal es POST, y en el caso de que estemos mandando el formulario a nuestra dirección de correo electrónico es obligado usarlo.
Con GET los datos son encadenados al URL especificado en action , utilizando el tipo de codificación especificado en el atributo enctype. Este método se utiliza cuando los datos no modifican la base de datos, por ejemplo, al realizar una búsqueda, y los caracteres a enviar tienen que pertenecer obligariamente al conjunto ASCII.
Con el método POST se realiza una transacción mediante el protocolo HTTP, utilizando la codificación enctype. Se utiliza para aplicaciones que modifican la base de datos de destino.

CICLOS

Tipos de Bucles
Existen 4 tipos de bucles para PHP, estos son:
While
Do...While
For
Foreach
Cada uno de ellos tiene su sintaxis y su uso específico. Cada uno estará explicado detalladamente luego.
While
Sintáxis:
while (condición) sentencia;
Su funcionamiento es sencillo, ya que primero se evalúa que la condición sea verdadera y luego se ejecuta, hasta que la condición pase a ser falsa; una sentencia while (Español: Mientras) puede que no se ejecute ni siquiera una vez, si su condición es inicialmente falsa.
Veamos un ejemplo de su uso:
( $i = 1;
while($i <= 3) $i += 1;
echo 'La variable $i vale: ' . $i ;
?> )
Salida:La variable $i vale: 4
Esta sintaxis de la instrucción while solo permite el uso de una sentencia dentro del bucle, en el ejemplo anterior la sentencia $i += 1 (ver Operadores) es la única que se repite.
Un bucle while puede contener varias sentencia, encerrándolas entre llaves ({}) o usando ésta sintaxis alternativa:
while (condición):
sentencia;
sentencia;
.
.
.
sentencia;
endwhile;
Do...While
Su uso es similar a while, pero aquí, las sentencias que siguen al do (Español: Hacer) se ejecutan por lo menos una vez y se comprueba la condición luego de la primera iteración; así, si es verdadera la condición se repite por segunda vez, si es falsa se continúa con las sentencias inmediatamente después de la instrucción while. Tiene sólo una sintáxis.
Sintáxis:
do {
sentencia;
sentencia;
.
.
.
sentencia;
} while (condición);
Todo lo explicado referente al bucle while se aplica también al do...while, sin embargo la principal diferencia con este es que el do...while siempre ejecuta al menos la primera iteración, mientras que en el while pudiera no ejecutar ninguna iteración, esto ocurre si la condición es falsa desde antes del inicio del bucle.
Un ejemplo con do...while:
$i = 5;
$n = 1;
do {
$n = $n * $i;
$i -= 1;
}while($i > 1);
echo "5! es igual a: " . $n
?>
Salida5! es igual a: 120
For
Los bucles for (Español: Para) son los más complejos en PHP (y en otros lenguajes de programación). Su sintaxis es la siguiente:
Sintáxis:
for (inicialización; condición; actualización) sentencia;
Inicialización: Es una expresión que ejecuta una sola vez al inicio y predetermina el primer valor inicial, mas comúnmente asignado a una variable ejemplo:
:$i = 1;
Condición: Es una expresión que se evalúa como falsa o verdadera, si es falsa el bucle finaliza, en caso contrario el bucle ejecuta la sentencia ejemplo:
:$i <= 5;
Actualización: Es una expresión que modifica la expresión de inicialización comúnmente en incremento o decremento Ejemplo:
:$i += 1
Nota: Observe que en esta ultima expresión no lleva (;).
Completada así la primera iteración se vuelve a evaluar la segunda expresión, y si esta es verdadera se ejecuta nuevamente la sentencia, con esto se completa una segunda iteración. Las iteraciones continúan hasta que la segunda expresión sea evaluada a falso.
En resumen estas expresiones son la inicialización, donde se dá el valor inicial a la variable de control del bucle; la condición que inicia cada iteración solo si es evaluada a verdadero; y el actualización o paso que incrementa o decrementa la variable de control al final de cada iteración para garantizar que la condición eventualmente evalúe a falso. veamos ahora como se utiliza:
for($i = 1; $i <= 5; $i += 1) echo $i . "\n";
?>
Salida
Foreach
Introducido en PHP 4 es una solución fácil para trabajar con arreglos, muy semejante a Perl y otros lenguajes, funciona solo en arreglos y presentara un error al utilizar una variable con diferente tipo o no inicializada. Existen dos sintaxis la segunda opción en menor pero tiene mejor uso que la primera.
Sintáxis:
foreach (expresión_arreglo as $valor)
sentencia
foreach (expresión_arreglo as $llave => $valor)
sentencia
En la primera forma los ciclos sobre el arreglo están dados por expresión_arreglo. En cada ciclo, el valor del elemento actual se asigna internamente a $valor y el puntero interno del arreglo avanza en uno de tal forma que en el siguiente ciclo vera el siguiente elemento.
La segunda forma es la misma cosa, salvo que la clave del elemento actual se asigna a la variable $llave en cada bucle.
A partir de PHP 5, también es posible iterar objetos.

CONDICIONALES


PHP al igual que la mayoría de lenguajes de programación necesita de herramientas que permitan tomar decisiones lógicas al servidor.
If...Else
If...Elseif...Else
Switch
Estas son todas las posibilidades condicionales que nos permite este lenguaje de programación.
[editar] If...Else
Estas instrucciones son las mas usadas de todos los lenguajes de programación, ya que son las mas básicas. IF (Español: SI) ELSE (Español: SI NO).
Estructura:
if(expresión)
{
... Sentencias;
}
else
{
... Sentencias;
}
De momento, en ese cachito de codigo aunque sin nada tangible, estarías diciendo que si la expresión se cumple se realizan sentencias, y en este caso si no se cumpliese la expresión se evaluaría las sentencias que están dentro de else{...}.
Un ejemplo para probar en casa:
$galletas = true;
if($galletas)
{
echo 'Hay galletas';
}
else
{
echo 'No hay galletas';
}
?>
En este ejemplo, estamos dando un valor $galletas y comprobamos si es cierto o no, introduciendolo en la expresión del condicional. Tal cual está, este ejemplo produciría el resultado 'Hay galletas', aunque si cambiasemos $galletas = true; por $galletas = false daría como resultado la segunda sentencia.
[editar] If...Elseif...Else
La estructura de estas instrucciones viene a ser muy similar que la anterior, y de hecho el ejemplo anterior es válido igualmente para este.
Estructura:
if(expresión)
{
... Sentencias;
}
elseif(expresión)
{
... Sentencias;
}
else
{
... Sentencias;
}
?>
Esta es la sintaxís con la que debe ser usada elseif. Un elseif se ejecutará, siempre y cuando, no haya alguna respuesta verdadera en el if o elseif anterior; luego de que se llega al final de los elseif, y ninguno ha sido verdadero, se ejecutará lo que está dentro de el else final.
Pueden haber varios elseif, pero estos estan siempre dentro de un if y un else(sólo uno) final.
Otro ejemplo, para dejar en claro el funcionamiento de elseif:
$test = 33;
if ($test > 40) {
echo "Sí, $test es mayor que 40.";
}
elseif ($test > 35) {
echo "Sí, $test es mayor que 35.";
}
elseif ($test > 30) {
echo "Sí, $test es mayor que 30.";
}
else {
echo "No, $test es menor que 40, 35 y 30.";
}
?>
En este caso la respuesta sería:Sí, 33 es mayor que 30.
Si el valor de $test se cambia a 22, la respuesta sería:No, 22 es menor que 40, 35 y 30.
[editar] Switch
Las instrucciones If...Elseif...Else permiten seleccionar entre más de dos posibles condiciones que puedan ser evaluadas como true o false, pero en ocasiones nos encontrarémos con casos en que queremos evaluar condiciones con una estructura como esta:
if($variable==Valor1)
{
... Sentencias;
}
elseif($variable==Valor2)
{
... Sentencias;
}
elseif($variable==Valor3)
{
... Sentencias;
}else
{
... Sentencias;
}
En las que esperamos realizar una acción determinada según el valor tomado por una variable. Para estos casos la mayoría de los lenguajes de programación incluyen una instrucción que permite "seleccionar" entre los posibles valores de una variable: la instrucción Switch (Español: SELECCIONAR).
Estructura:
switch($variable)
{
case Valor1:
... Sentencias;
break;

case Valor2:
... Sentencias;
break;

case Valor3:
... Sentencias;
break;

.
.
.

default:
... Sentencias;
}
En esta estructura, $variable es la variable que será comparada sucesivamente con cada una de las instrucciones case hasta hallar la que corresponda al valor de $variable, una vez que la encuentre se ejecutarán sucesivamente todas las instrucciones pertenecientes al switch hasta hallar la siguiente instrucción break; esta última hace un salto pasando el control del programa a la instrucción inmediata siguiente fuera del switch.
Si ninguna de las instrucciones case corresponde al valor de $variable se ejecutarán solo las instrucciones siguientes al default. Al igual que else, la instrucción default es opcional.
Veamos un ejemplo:
Usando if...elsefif...else
Usando switch
$variable=2;
if($variable==1)
{
echo '$Variable es igual a 1.';
}
elseif($variable==2)
{
echo '$Variable es igual a 2.';
}
elseif($variable==3)
{
echo '$Variable es igual a 3.';
}else
{
echo '$Variable no es igual ' .
'a 1, 2 o 3.';
}
?>
$variable=2;
switch($variable)
{
case 1:
echo '$Variable es igual a 1.';
break;

case 2:
echo '$Variable es igual a 2.';
break;

case 3:
echo '$Variable es igual a 3.';
break;

default:
echo '$Variable no es igual ' .
'a 1, 2 o 3.';
}
?>
El resultado de ambas formas mostradas será:$Variable es igual a 2.
Si por el contrario cambiamos $Variable=2 por $Variable=5 al inicio de código el resultado sería:$Variable no es igual a 1, 2 o 3.
Una diferencia importante respecto a las instrucciones if...elseif...else es que se requiere de la instrucción break para salir del switch al terminar las instrucciones correspondientes a un case. Esto es así debido a que solo podemos especificar un valor en cada case. Veamos un ejemplo:
Usando if...elsefif...else
Usando switch
$variable=2;
if($variable==1)
{
echo '$Variable es igual a 1.';
}
elseif($variable==2
OR $variable==3)
{
echo '$Variable es igual a 2 o 3.';
}else
{
echo '$Variable no es igual ' .
'a 1, 2 o 3.';
}
?>
$variable=2;
switch($variable)
{
case 1:
//Se ejecuta si $variable vale 1
echo '$Variable es igual a 1.';
break;

case 2:
case 3:
//Se ejecuta si $variable vale 2 o 3
echo '$Variable es igual a ' .
'2 o 3.';
break;

default:
//Se ejecuta en cualquier otro caso
echo '$Variable no es igual ' .
'a 1, 2 o 3.';
}
?>
En cualquiera de las dos formas mostradas, la salida obtenida sería:$Variable es igual a 2 o 3.
En este caso, al evaluarse la segunda instrucción case no se encuentra ningún break por lo que siguen ejecutandose las instrucciones siguientes al tercer case, aun cuando $Variable es diferente de 3. Más aún, si borramos el break del tercer case también se ejecutarán las instrucciones siguientes a default, y la salida sería entonces:$Variable es igual a 2 o 3.
$Variable no es igual a 1, 2 o 3.
Obtenido de "http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_PHP/Condicionales"

OPERADORES PHP



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
-
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