SlideShare uma empresa Scribd logo
1 de 12
Taller esta creado con el objetivo de presentar temas comunes en
el manejo de PHP.

                   I.          Con su grupo de trabajo investigue los siguientes puntos en PHP:
                           -      Sintaxis de PHP
                           -      Declaración y Definición de variables, tipos de variables y tipos de
                                  datos
                           -      Declaración de comentarios (línea y bloque)
                           -      Manejo de operadores (aritméticos, comparación, lógicos)
                           -      Manejo de Condicionales (if…else, switch…case)
                           -      Manejo de bucles o ciclos (for, while, do…while, for…each)
                           -      Presentación de datos (echo, print, printf… etc.)
                           -      Manejo de Cadenas (strlen, Split, substr, strpos, str_replace … etc.)
                           -      Declaración, manipulación de arreglos y arreglos asociativos
                           -      Funciones de arreglos (array_key_exists,   array_merge, count … etc.)
                           -      Declaración de funciones
                           -      Creación, uso y manejo de librerías
                           -      Creación y Manejo de formularios (envío de datos)
                       -        Uso de métodos GET y POST (recepción de datos)
                   -           Uso e implementación de redireccionamiento, compresión, cache, cookies,
                               sesiones


                                             -DESARROLLO-

 Sintaxis de PHP


 La sintaxis de PHP es muy similar a la de C o C++. Quizás lo más destacado ocurre a nivel
 semántico: el tipado es muy poco estricto, es decir, cuando creamos una variable en ella
 podemos almacenar el tipo de datos que queramos. Esto es muy flexible y cómodo para el
 desarrollador, aunque los errores que se cometen pueden ser mucho más graves y difíciles de
 corregir. Las posibilidades del interprete para detectar incompatibilidades entre variables se
 reducen mucho y pueden ocurrir cosas extrañas en determinadas circunstancias si no tenemos
 cuidado.


Declaración y Definición de Variables


 La declaración y/o definición de variables se da en todos los lenguajes de programación.
JavaScript en su versión 1.3 ofrece un mecanismo para saber si una variable ha sido inicializada o
no; y esto lo consigue a través del valor Undefined. Este Undefined viene a decir, como resulta
de su traducción: “con valor sin definir o desconocido”, corre por nuestra cuenta el que le
asignemos un valor y tengamos control sobre esa variable. El objetivo al fin y al cabo es saber
cómo las hemos definido o declarado para después poder usarlas correctamente.
Tipos de Variables



Objetos

Se trata de conjuntos de variables y funciones asociadas. Presentan una complejidad mayor que

las variables vistas hasta ahora pero su utilidad es más que interesante.A diferencia de otros

lenguajes, PHP posee una gran flexibilidad a la hora de operar con variables. En efecto, cuando

definimos una variable asignándole un valor, el ordenador le atribuye un tipo.

Tipos de Datos

PHP soporta los siguientes tipos:

    •     Array

    •     Números de Punto Flotante

    •     Entero

    •     Objeto

    •     Cadena

El tipo de una variable normalmente no lo indica el programador; en su lugar, lo dice PHP en

tiempo de ejecución dependiendo del contexto en el que se utilice esa variable. Si se quisiese

obligar a que una variable se convierta a un tipo concreto, se podría forzar la variable o usar

la función settype( )         para ello.

Una variable se puede comportar de formas diferentes en ciertas situaciones, dependiendo de

que tipo sea en ese momento.

Manejo de Operadores Lógicos

Los operadores lógicos producen un resultado booleano, y sus operandos son también valores
lógicos o asimilables a ellos (los valores numéricos son asimilados a cierto o falso según su
valor   sea   cero   o   distinto   de     cero).   Por   contra,   recuerde   que   las   operaciones   entre   bits
producen valores arbitrarios.

Los operadores lógicos son tres; dos de ellos son binarios, el último (negación) es unario.
Tienen una doble posibilidad de representación en el Estándar C++ actual: la representación
tradicional que se indica a continuación, y la natural introducida recientemente que se detalla
más adelante.

    •     Y lógico       &&              AND

    •     O lógico                          OR

    •     Negación lógica !                NOT
Las expresiones conectadas con los operadores && y || se evalúan de izquierda a derecha, y la
evaluación se detiene tan pronto como el resultado verdadero o falso es conocido (muchos
programas tienen una lógica que se basa en este propiedad).




&&       Operador Y lógico

También     denominado        por    su   nombre      en     inglés   (generalmente        en   mayúsculas)     AND    lógico.
Devuelve un valor lógico true si ambos operandos son ciertos. En caso contrario el resultado es
false.

Operadores Aritméticos


Son aquellos que sirven para operar términos numéricos. Estos operadores podemos clasificarlos a
su vez como:
UNARIOS
BINARIOS
Los operadores UNARIOS son aquellos que trabajan con UN OPERANDO.
Pascal permite el manejo de un operador unario llamado:
MENOS UNARIO
Este operador denota la negación del operando, y se representa por medio del signo menos (-)
colocado antes del operando.
Por ejemplo:
Si x tiene asignado el valor 100, -x dará como resultado -100; esto es que el resultado es el
inverso aditivo del operando.
Los operadores BINARIOS, son los que combinan DOS OPERANDOS, dando como resultado un
valor numérico cuyo tipo será igual al mayor de los tipos que tengan los operandos.
La siguiente tabla muestra los símbolos de los operadores binarios de Pascal así como los
nombres de las operaciones que realizan.

Operadores Comparativos

Los operadores Comparativos requieren                      (>,<,>=,<=,=,<>), para producir un resultado lógico
(True or False).


Condicionales


Cuando      tenemos    la    necesidad        de   tomar    una    decisión    basada    alguna   condición     utilizamos   el
condicional    if,    pero    algunas     veces     debemos       comprobar     varios     datos para   saber    que   hacer.
Es   aquí     cuando        entran      los    condicionales,         es      este   tip     veremos    como      utilizarlos.


Los condicionales son:

     •     AND (&&)

     •     OR (||)
•     NOT (!)

AND (&&)


Este operador ejecuta el código sólo si las dos condiciones son verdaderas.

  Código :

    if((1 == 1) && (1 < 2)) //Si uno es igual a uno y uno es menor que dos

    {

        trace("True"); //True

    }




OR (||)


Ejecuta el código si alguna de las condiciones es verdadera.

  Código :

    if((1 == 4) || (1 < 2)) //Si uno es igual a cuatro o uno es menor que dos

    {

        trace("True"); //True, la condicion de la derecha es verdadera

    }




NOT (!)


Ejecuta el código si la condición es contraria.

  Código :

    var lloviendo:Boolean = false;




    if(!(lloviendo == true))

    {

        trace("No está lloviendo"); //Si no se hubiera colocado el [b]![/b], no se ejecutaría
    el trace

    }
Manejo de Ciclos


Ciclos for
Si queremos mostrar el mensaje hola mundo 10 veces, podemos usar el comando for.
for ($i=0; $i -lt 10; $i++)
{
echo "hola mundo"
}
Ciclos do while
Do while significa hacer algo mientras se cumpla alguna condición.
Voy a repetir mi ejemplo de imprimir 10 veces hola mundo usando do while
$i = 1
do {echo "hola mundo"; $i++}
while ($i -le 10)


Ciclos while
Este es similar al do while. Tal vez la principal diferencia es que el primero si o si se ejecuta
una vez y luego recién ve las condiciones.
$i = 1
while ($i -le 10) {
echo "hola mundo"
$i++
}


Manejo de Datos


PHP    puede    generar   el   HTML   que   quieras.   Es    mas,   puedes    usar   plantillas    diseñadas   (casi)
exclusivamente en HTML y mediante un motor de plantillas "rellenar" los datos. Un motor sencillo
son                                                    las                                                      Nok.


Y si, se puede mostrar una imagen en función de un valor de un campo. La forma mas fácil es
con forzar el nombre de la imagen a ser la letra + .gif (o .jpg):
Código PHP:
<img src="/imagenes/<?php echo $row['campo']; ?>.gif">
De       esta    forma     tendrías    g.gif      para       el     CD,      j.gif    para        el   DVD,      ...


Otra forma seria con un array asociativo cuyos índices sean la letra (o cadena) y los valores las
imágenes:
Código PHP:
<?php
$imagenes=array('g'=>'cd.gif', 'j'=>'DVD.jpg');
...
?>
<img src="/imagenes/<?php echo $imagenes[$row['campo']]; ?>.gif">
Manejo de cadenas
Dado el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes
funciones para el manejo de cadenas, a continuación explicaremos las más usadas.

    •     strlen(cadena). Nos devuelve el número de carácteres de una cadena.

    •     split(separador,cadena). Divide una cadena en varias usando un carácter separador.

    •     sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual que
          printf pero el resultado es devuelto como una cadena.

    •     substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio
          y de longitud longitud.

    •     chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena.

    •     strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición
          en la que se encuentra.

    •     str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto.



    Manipulación de Arreglos

Ejemplo:




Funciones de Arreglos

array_slice()

Para    disminuir   el   número   de   casillas   de   un   arreglo   tenemos   varias   funciones.   Entre   ellas,

array_slice() la utilizamos cuando queremos recortar algunas casillas del arreglo, sabiendo los

índices de las casillas que deseamos conservar.

array_shift()

Esta función extrae el       primer elemento del array y lo devuelve. Además, acorta la longitud del

array eliminando el elemento que estaba en la primera casilla. Siempre hace lo mismo, por tanto,

no recibirá más que el array al que se desea eliminar la primera posición.

unset()

Se utiliza para destruir una variable dada. En el caso de los arreglos, se puede utilizar para

eliminar una casilla de un array asociativo (los que no tienen índices numéricos sino que su índice

es una cadena de caracteres).

array_push()

Inserta al final del array una serie de casillas que se le indiquen por parámetro. Por tanto, el

número de casillas del array aumentará en tantos elementos como se hayan indicado en el

parámetro de la función. Devuelve el número de casillas del array resultante.
array_merge()

Ahora vamos a ver cómo unir dos arrays utilizando la función array_merge(). A ésta se le pasan

dos o más arrays por parámetro y devuelve un arreglo con todos los campos de los vectores

pasados.

Declaracion de Funciones

 La declaración da a conocer la función al compilador, de forma que a
partir del punto de declaración, ya se pueden realizar invocaciones a la
misma. A su vez, la definición estará en algún otro punto del programa, tal
vez en una librería externa (en forma ya compilada) o en otro módulo de
programa (como texto fuente).
Una función puede ser declarada varias veces en un mismo programa, y las
declaraciones pueden aparecer en cualquier orden; en un fichero fuente o en
varios, pero en cualquier caso antes de su uso, es decir: antes de cualquier
invocación a la función . Además de declarar el nombre de la función y el
tipo devuelto (por defecto se supone int                   se declaran también el tipo de
los parámetros.
Ejemplo:
extern     int    funcion1     ();               //    no     acepta    ningún        argumento
extern      int     funcion1     (void);              //     mejor     que       la     anterior
funcion2 (char, int);                        // por defecto supone que devuelve int
int      funcion2     (char,         int);            //     mejor     que       la     anterior
char funcion3 (char c, int i); // incluye nombres de parámetros


Nota: los compiladores MS Visual C++ y Borland C++ admiten que ciertos
especificadores opcionales acompañen a la declaración de funciones y otros
objetos. Tales especificadores son de utilidad en circunstancias específicas



Al tratar de la construcción de un programa señalamos que en ocasiones no
se desea construir un ejecutable, al menos no en el sentido tradicional del
término, sino una librería, y que estas librerías son trozos de código que
contienen alguna funcionalidad pre-construida que puede ser utilizada por un
ejecutable. Por supuesto, las librerías contienen en su interior variables y
funciones. Si como suponemos son librerías C++, lo más probable es que
estas variables y funciones estén encapsuladas en forma de clases.                      Observe
que la idea central de librería es precisamente la de ser un módulo de
software preconstruido -generalmente por terderos- para cuya utilización no
es   necesario       conocer      los    detalles    íntimos    de     su    funcionamiento,       sino   su
interfaz. Es decir, que respuestas nos puede dar y cómo hay que preguntar
-a la librería- para obtenerlas.
En general, el término librería se utiliza para referirse a un conjunto de
módulos objeto .obj / .o (resultados de compilación) agrupados en un solo
fichero que suele tener las extensiones .lib, .bpl.a, .dll, etc. Estos ficheros
permiten      tratar      las    colecciones        de   módulos       como     una     sola   unidad,     y
representan         una   forma     muy       conveniente      para    el    manejo    y   desarrollo     de
aplicaciones grandes, además de ser un concepto muy fértil para la industria
del software, ya que permiten la existencia de las librerías de los propios
compiladores




Librerías estáticas



Denominadas         también      librerías-objeto,       son     colecciones      de    ficheros    objeto
(compilados) agrupados en un solo fichero de extensión .lib, .a, etc. junto
con uno o varios ficheros de cabecera



Librerías dinámicas

Otra        forma      de       añadir        funcionalidad      a      un     ejecutable        son      las
denominadas librerías de enlazado dinámico (repasar en                            1.4.4 el significado
de "enlazado dinámico"), generalmente conocidas como DLLs, acrónimo de su
nombre en inglés ("Dynamic Linked Library"). Estas librerías se utilizan mucho
en     la   programación        para     el   SO   Windows.     Este    Sistema       contiene   un    gran
número de tales librerías de terminación .DLL, aunque en realidad pueden
tener cualquier otra terminación .EXE, .FON, .BPI, .DRV etc. Cualquiera que
sea su terminación, de forma genérica nos referiremos a ellas como DLLs,
nombre por el que son más conocidas.
En cierta forma, los formularios nos permiten manejar el ingreso de los
datos en una
aplicación WEB.
Por    medio   de   estos    verdaderos    repositorios    de     datos,       podemos    enviar
informacióndirectamente       al   Servidor   (Base   de        Datos)     o    bien,    manejar
información para ser procesadaen forma posterior.
La estructura general de un formulario es:
1. Etiqueta de inicio:
     <FORM             ACTION="mailto:dirección_de_email"                      METHOD="POST">
2. Cuerpo del formulario, con los distintos elementos para poder introducir
los                                                                                       datos.
3.           Botones          de          envío           y/o            de             borrado.
4. Etiqueta de cierre </FORM>
Supongamos el siguiente ejemplo, denominadoformular io. 2. ht




Métodos de envió de datos GET y POST


Son los métodos de los cuales los datos de un formulario son enviados, el
método es indicado en el atributo method y los dos métodos posibles son
GET y POST. La diferencia entre estos dos métodos radica en la forma de
enviar los datos a la página, mientras que el método GET envía los datos
usando la URL, el método POST los envía por la entrada estándar STDIO, en
otras palabras se pasa los datos codificados en el flujo de datos HTTP y los
datos no son visibles para los usuarios.


Tipos de contenido enviado por un formulario


En los tipos de contenidos posibles:
* multipart/form-data: cuando se envían archivos.
* text/plain: solo texto legible.


Cajas de Texto


El usuario podrá ingresar texto en el formulario por medio de la etiqueta
<input/>
¿Qué son las redirecciones?
Las redirecciones le indican tanto a los buscadores como a los usuarios que
el contenido al que se desea acceder se ha movido de una ubicación a otra.
Existen dos tipos principales de redirecciones que tienen distintos efectos:
•   Redireccionamiento Permanente 301: Muestra un código de estado HTTP 301
    que indica que el contenido se ha movido de forma permanente a otra
    ubicación, por lo cual los buscadores dejarán de tomar en cuenta la URL
    antigua en su índice para incluir la nueva. Redirige tanto a los usuarios
    como a los buscadores y transmite la fuerza SEO que tenía la página en la
    ubicación anterior a la nueva.
•   Redireccionamiento Temporal 302: Muestra un código de estado HTTP 302
    que   indica   que   el    contenido    se   ha   movido      de   forma temporal a    otra
    ubicación, por lo cual aunque redirige tanto a los usuarios como a los
    buscadores, no transmite la fuerza SEO de la URL antigua a la nueva.


¿Cuándo se debe hacer uso de las redirecciones?
Las redirecciones son         útiles   para redirigir   a   los    usuarios   y   buscadores en
diversas situaciones, entre otras, cuando:
Se ha publicado una nueva versión de una página ya existente
El contenido publicado en una página ha expirado y se desea eliminar
Existe contenido duplicado: El mismo contenido en múltiples URLs o tienes
problemas de Canonicalización.
Se cambia el dominio del sitio
Se desea modificar la estructura de URLs de un sitio
Debido a las diferencias planteadas anteriormente de los dos tipos principales
de redireccionamientos es muy importante tomar en cuenta no sólo su uso de
cara al usuario (si tiene a la página que ha cambiado de ubicación entre sus
favoritos y accede a ella) sino también de cara a los buscadores (si la
página se encuentra ya posicionada y tiene enlaces entrantes), por lo que a
no ser por casos muy específicos, usualmente el tipo que beneficiará en las
situaciones descritas es el redireccionamiento 301.

¿Cómo se implementan las redirecciones?
Las redirecciones pueden ser implementadas de múltiples formas, tanto a
nivel del código        de las páginas como del servidor.
En el caso que sólo se desee implementar la redirección a una sola URL
podría     parecer     más    fácil     hacerlo    directamente           a    través      del    código,    sin
embargo, para tener un control y acceso único a las redirecciones que se
realizan    en   una    Web,      lo    mejor     es    realizarlo    a       nivel   de    servidor,      como
lo aconseja el propio Google.
Las redirecciones pueden ser implementadas en el lenguaje de programación
de la página, por ejemplo, directamente en PHP o ASP, pero se debe de
asegurar que el código de estado HTTP que se muestra es 301.
Es    importante        señalar        que    existen      otros      métodos           para      implementar
redirecciones a nivel de código de las páginas que no son aconsejados como
los realizados a través de la etiqueta meta-refresh o javascript (utilizados
usualmente       para     hacer         spam)      ya     que        no       tienen       el     efecto     de
un redireccionamiento 301.
Por otro lado, para implementar redirecciones 301 a nivel de servidor puedes
hacerlo en Apache editando el archivo Htaccesscon las directivas “Redirect” o
“Rewrite Rules”.
A     continuación           tienes      un       compendio           de         guías          sobre      cómo
implementar redirecciones 301 en Apache:
•    Guide to Applying 301 Redirects with Apache
•    Apache Redirects for SEOs
•    .htaccess, 301 Redirects & SEO
•    Editar htaccess para crear direcciones URL amigables
•    Cambio de URL redirección 301 con .htaccess
•    .htaccess 301 Redirect
Para implementar redirecciones 301 en un servidor Web ejecutando Microsoft
IIS se puede hacer uso de la consola de IISo de directivas similares a la de
Mod_Rewrite   en      Apache,   en   caso   que   se   utilice   un   plug-in
como ISAPI_Rewrite.

Mais conteúdo relacionado

Mais procurados

02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesAbrirllave
 
Javacript: expresiones e instrucciones
Javacript: expresiones e instruccionesJavacript: expresiones e instrucciones
Javacript: expresiones e instruccionesjcremiro
 
Identificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoIdentificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoAbrirllave
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Javasvhurtado
 
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje CDiego Andrés Alvarez Marín
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en CVane Borjas
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a ObjetosJose Emilio Labra Gayo
 
Tipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigoTipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigoAbrirllave
 
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...David Zapateria Besteiro
 
Expresiones logicas
Expresiones logicasExpresiones logicas
Expresiones logicaszamand14
 

Mais procurados (19)

02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Php basico
Php basicoPhp basico
Php basico
 
Javacript: expresiones e instrucciones
Javacript: expresiones e instruccionesJavacript: expresiones e instrucciones
Javacript: expresiones e instrucciones
 
2 Introducción al lenguaje Ruby
2 Introducción al lenguaje Ruby2 Introducción al lenguaje Ruby
2 Introducción al lenguaje Ruby
 
Tutorial de php
Tutorial de phpTutorial de php
Tutorial de php
 
Identificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoIdentificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigo
 
Programacion basica
Programacion basicaProgramacion basica
Programacion basica
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 
la instrucción if , Leer cadenas, caracteres
 la instrucción if , Leer cadenas, caracteres la instrucción if , Leer cadenas, caracteres
la instrucción if , Leer cadenas, caracteres
 
Php
PhpPhp
Php
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 
Mod2ud1 2
Mod2ud1 2Mod2ud1 2
Mod2ud1 2
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos
 
Tipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigoTipos de datos definidos por el programador en pseudocódigo
Tipos de datos definidos por el programador en pseudocódigo
 
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e inte...
 
Expresiones logicas
Expresiones logicasExpresiones logicas
Expresiones logicas
 

Destaque

Problemas De Aprendizaje
Problemas De AprendizajeProblemas De Aprendizaje
Problemas De AprendizajeTatyMely
 
Informãtica evelyn
Informãtica   evelynInformãtica   evelyn
Informãtica evelynliz2106
 
Graficas deviolencia
Graficas deviolenciaGraficas deviolencia
Graficas deviolenciamiguelbeja123
 
2.condición si y
2.condición si y2.condición si y
2.condición si yED EiAxs
 
Combates de la guerra civil de 1891
Combates de la guerra civil de 1891Combates de la guerra civil de 1891
Combates de la guerra civil de 1891Distea V región
 
Ciber crimen especialmente sobre las consideraciones sobre bien jurìdico
Ciber crimen especialmente sobre las consideraciones sobre bien jurìdicoCiber crimen especialmente sobre las consideraciones sobre bien jurìdico
Ciber crimen especialmente sobre las consideraciones sobre bien jurìdicolissethuayta0104
 
Cuestionario prgts
Cuestionario prgtsCuestionario prgts
Cuestionario prgtselidetjc
 
5.saltos de sección
5.saltos de sección5.saltos de sección
5.saltos de secciónED EiAxs
 
Practica 3.de banedocx
Practica 3.de banedocxPractica 3.de banedocx
Practica 3.de banedocxBaanee Kruus
 
Publicidad impresa interactiva 2014
Publicidad impresa interactiva 2014Publicidad impresa interactiva 2014
Publicidad impresa interactiva 2014Tomas Hilton Ramirez
 
1.abrir access
1.abrir access1.abrir access
1.abrir accessED EiAxs
 
Tutorial de estructuras c#
Tutorial de estructuras c#Tutorial de estructuras c#
Tutorial de estructuras c#elidetjc
 
Instalación de windows 2003 server
Instalación de windows 2003 serverInstalación de windows 2003 server
Instalación de windows 2003 serverGINA214
 

Destaque (20)

Travaux
TravauxTravaux
Travaux
 
Problemas De Aprendizaje
Problemas De AprendizajeProblemas De Aprendizaje
Problemas De Aprendizaje
 
Reconocimiento100412 167
Reconocimiento100412 167Reconocimiento100412 167
Reconocimiento100412 167
 
Informãtica evelyn
Informãtica   evelynInformãtica   evelyn
Informãtica evelyn
 
Graficas deviolencia
Graficas deviolenciaGraficas deviolencia
Graficas deviolencia
 
2.condición si y
2.condición si y2.condición si y
2.condición si y
 
Combates de la guerra civil de 1891
Combates de la guerra civil de 1891Combates de la guerra civil de 1891
Combates de la guerra civil de 1891
 
Trabajo word
Trabajo word Trabajo word
Trabajo word
 
s
ss
s
 
Ciber crimen especialmente sobre las consideraciones sobre bien jurìdico
Ciber crimen especialmente sobre las consideraciones sobre bien jurìdicoCiber crimen especialmente sobre las consideraciones sobre bien jurìdico
Ciber crimen especialmente sobre las consideraciones sobre bien jurìdico
 
Trabajo word
Trabajo wordTrabajo word
Trabajo word
 
Cuestionario prgts
Cuestionario prgtsCuestionario prgts
Cuestionario prgts
 
Evaluación
EvaluaciónEvaluación
Evaluación
 
5.saltos de sección
5.saltos de sección5.saltos de sección
5.saltos de sección
 
Practica 3.de banedocx
Practica 3.de banedocxPractica 3.de banedocx
Practica 3.de banedocx
 
Publicidad impresa interactiva 2014
Publicidad impresa interactiva 2014Publicidad impresa interactiva 2014
Publicidad impresa interactiva 2014
 
Como crear una cuenta de youtube
Como crear una cuenta de youtubeComo crear una cuenta de youtube
Como crear una cuenta de youtube
 
1.abrir access
1.abrir access1.abrir access
1.abrir access
 
Tutorial de estructuras c#
Tutorial de estructuras c#Tutorial de estructuras c#
Tutorial de estructuras c#
 
Instalación de windows 2003 server
Instalación de windows 2003 serverInstalación de windows 2003 server
Instalación de windows 2003 server
 

Semelhante a Presentación de PHP

Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxConceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxgalletasdecoco84
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfcarlosquiza2
 
Introducción a C++
Introducción a C++Introducción a C++
Introducción a C++Ryoga Luis
 
Sesion1 Php Basico
Sesion1 Php BasicoSesion1 Php Basico
Sesion1 Php BasicoHugo Flores
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeIntCristian C
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Estructuras básicas 3 er periodo.docx
Estructuras básicas 3 er periodo.docxEstructuras básicas 3 er periodo.docx
Estructuras básicas 3 er periodo.docxLuzAngieBolaosOrdoez
 
Estructuras básicas 3 er periodo.docx (1)
Estructuras básicas 3 er periodo.docx (1)Estructuras básicas 3 er periodo.docx (1)
Estructuras básicas 3 er periodo.docx (1)LuzAngieBolaosOrdoez
 
Fundamentos de programacion en java
Fundamentos de programacion en javaFundamentos de programacion en java
Fundamentos de programacion en javaJefferson Sarmiento
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacionkarenyulithza
 
Presentacion C++
Presentacion C++Presentacion C++
Presentacion C++Marco Bau
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++grachika
 
Estructuras control java-
Estructuras control java-Estructuras control java-
Estructuras control java-SENA
 

Semelhante a Presentación de PHP (20)

Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxConceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdf
 
Introducción a C++
Introducción a C++Introducción a C++
Introducción a C++
 
Sesion1 Php Basico
Sesion1 Php BasicoSesion1 Php Basico
Sesion1 Php Basico
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Estructuras básicas 3 er periodo.docx
Estructuras básicas 3 er periodo.docxEstructuras básicas 3 er periodo.docx
Estructuras básicas 3 er periodo.docx
 
Estructuras básicas 3 er periodo.docx (1)
Estructuras básicas 3 er periodo.docx (1)Estructuras básicas 3 er periodo.docx (1)
Estructuras básicas 3 er periodo.docx (1)
 
Introduccions a java
Introduccions a javaIntroduccions a java
Introduccions a java
 
Fundamentos de programacion en java
Fundamentos de programacion en javaFundamentos de programacion en java
Fundamentos de programacion en java
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Instrucciones basicas
Instrucciones basicasInstrucciones basicas
Instrucciones basicas
 
Presentacion C++
Presentacion C++Presentacion C++
Presentacion C++
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++
 
Estructuras control java-
Estructuras control java-Estructuras control java-
Estructuras control java-
 

Presentación de PHP

  • 1. Taller esta creado con el objetivo de presentar temas comunes en el manejo de PHP. I. Con su grupo de trabajo investigue los siguientes puntos en PHP: - Sintaxis de PHP - Declaración y Definición de variables, tipos de variables y tipos de datos - Declaración de comentarios (línea y bloque) - Manejo de operadores (aritméticos, comparación, lógicos) - Manejo de Condicionales (if…else, switch…case) - Manejo de bucles o ciclos (for, while, do…while, for…each) - Presentación de datos (echo, print, printf… etc.) - Manejo de Cadenas (strlen, Split, substr, strpos, str_replace … etc.) - Declaración, manipulación de arreglos y arreglos asociativos - Funciones de arreglos (array_key_exists, array_merge, count … etc.) - Declaración de funciones - Creación, uso y manejo de librerías - Creación y Manejo de formularios (envío de datos) - Uso de métodos GET y POST (recepción de datos) - Uso e implementación de redireccionamiento, compresión, cache, cookies, sesiones -DESARROLLO- Sintaxis de PHP La sintaxis de PHP es muy similar a la de C o C++. Quizás lo más destacado ocurre a nivel semántico: el tipado es muy poco estricto, es decir, cuando creamos una variable en ella podemos almacenar el tipo de datos que queramos. Esto es muy flexible y cómodo para el desarrollador, aunque los errores que se cometen pueden ser mucho más graves y difíciles de corregir. Las posibilidades del interprete para detectar incompatibilidades entre variables se reducen mucho y pueden ocurrir cosas extrañas en determinadas circunstancias si no tenemos cuidado. Declaración y Definición de Variables La declaración y/o definición de variables se da en todos los lenguajes de programación. JavaScript en su versión 1.3 ofrece un mecanismo para saber si una variable ha sido inicializada o no; y esto lo consigue a través del valor Undefined. Este Undefined viene a decir, como resulta de su traducción: “con valor sin definir o desconocido”, corre por nuestra cuenta el que le asignemos un valor y tengamos control sobre esa variable. El objetivo al fin y al cabo es saber cómo las hemos definido o declarado para después poder usarlas correctamente.
  • 2. Tipos de Variables Objetos Se trata de conjuntos de variables y funciones asociadas. Presentan una complejidad mayor que las variables vistas hasta ahora pero su utilidad es más que interesante.A diferencia de otros lenguajes, PHP posee una gran flexibilidad a la hora de operar con variables. En efecto, cuando definimos una variable asignándole un valor, el ordenador le atribuye un tipo. Tipos de Datos PHP soporta los siguientes tipos: • Array • Números de Punto Flotante • Entero • Objeto • Cadena El tipo de una variable normalmente no lo indica el programador; en su lugar, lo dice PHP en tiempo de ejecución dependiendo del contexto en el que se utilice esa variable. Si se quisiese obligar a que una variable se convierta a un tipo concreto, se podría forzar la variable o usar la función settype( ) para ello. Una variable se puede comportar de formas diferentes en ciertas situaciones, dependiendo de que tipo sea en ese momento. Manejo de Operadores Lógicos Los operadores lógicos producen un resultado booleano, y sus operandos son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados a cierto o falso según su valor sea cero o distinto de cero). Por contra, recuerde que las operaciones entre bits producen valores arbitrarios. Los operadores lógicos son tres; dos de ellos son binarios, el último (negación) es unario. Tienen una doble posibilidad de representación en el Estándar C++ actual: la representación tradicional que se indica a continuación, y la natural introducida recientemente que se detalla más adelante. • Y lógico && AND • O lógico OR • Negación lógica ! NOT
  • 3. Las expresiones conectadas con los operadores && y || se evalúan de izquierda a derecha, y la evaluación se detiene tan pronto como el resultado verdadero o falso es conocido (muchos programas tienen una lógica que se basa en este propiedad). && Operador Y lógico También denominado por su nombre en inglés (generalmente en mayúsculas) AND lógico. Devuelve un valor lógico true si ambos operandos son ciertos. En caso contrario el resultado es false. Operadores Aritméticos Son aquellos que sirven para operar términos numéricos. Estos operadores podemos clasificarlos a su vez como: UNARIOS BINARIOS Los operadores UNARIOS son aquellos que trabajan con UN OPERANDO. Pascal permite el manejo de un operador unario llamado: MENOS UNARIO Este operador denota la negación del operando, y se representa por medio del signo menos (-) colocado antes del operando. Por ejemplo: Si x tiene asignado el valor 100, -x dará como resultado -100; esto es que el resultado es el inverso aditivo del operando. Los operadores BINARIOS, son los que combinan DOS OPERANDOS, dando como resultado un valor numérico cuyo tipo será igual al mayor de los tipos que tengan los operandos. La siguiente tabla muestra los símbolos de los operadores binarios de Pascal así como los nombres de las operaciones que realizan. Operadores Comparativos Los operadores Comparativos requieren (>,<,>=,<=,=,<>), para producir un resultado lógico (True or False). Condicionales Cuando tenemos la necesidad de tomar una decisión basada alguna condición utilizamos el condicional if, pero algunas veces debemos comprobar varios datos para saber que hacer. Es aquí cuando entran los condicionales, es este tip veremos como utilizarlos. Los condicionales son: • AND (&&) • OR (||)
  • 4. NOT (!) AND (&&) Este operador ejecuta el código sólo si las dos condiciones son verdaderas. Código : if((1 == 1) && (1 < 2)) //Si uno es igual a uno y uno es menor que dos { trace("True"); //True } OR (||) Ejecuta el código si alguna de las condiciones es verdadera. Código : if((1 == 4) || (1 < 2)) //Si uno es igual a cuatro o uno es menor que dos { trace("True"); //True, la condicion de la derecha es verdadera } NOT (!) Ejecuta el código si la condición es contraria. Código : var lloviendo:Boolean = false; if(!(lloviendo == true)) { trace("No está lloviendo"); //Si no se hubiera colocado el [b]![/b], no se ejecutaría el trace }
  • 5. Manejo de Ciclos Ciclos for Si queremos mostrar el mensaje hola mundo 10 veces, podemos usar el comando for. for ($i=0; $i -lt 10; $i++) { echo "hola mundo" } Ciclos do while Do while significa hacer algo mientras se cumpla alguna condición. Voy a repetir mi ejemplo de imprimir 10 veces hola mundo usando do while $i = 1 do {echo "hola mundo"; $i++} while ($i -le 10) Ciclos while Este es similar al do while. Tal vez la principal diferencia es que el primero si o si se ejecuta una vez y luego recién ve las condiciones. $i = 1 while ($i -le 10) { echo "hola mundo" $i++ } Manejo de Datos PHP puede generar el HTML que quieras. Es mas, puedes usar plantillas diseñadas (casi) exclusivamente en HTML y mediante un motor de plantillas "rellenar" los datos. Un motor sencillo son las Nok. Y si, se puede mostrar una imagen en función de un valor de un campo. La forma mas fácil es con forzar el nombre de la imagen a ser la letra + .gif (o .jpg): Código PHP: <img src="/imagenes/<?php echo $row['campo']; ?>.gif"> De esta forma tendrías g.gif para el CD, j.gif para el DVD, ... Otra forma seria con un array asociativo cuyos índices sean la letra (o cadena) y los valores las imágenes: Código PHP: <?php $imagenes=array('g'=>'cd.gif', 'j'=>'DVD.jpg'); ... ?> <img src="/imagenes/<?php echo $imagenes[$row['campo']]; ?>.gif">
  • 6. Manejo de cadenas Dado el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes funciones para el manejo de cadenas, a continuación explicaremos las más usadas. • strlen(cadena). Nos devuelve el número de carácteres de una cadena. • split(separador,cadena). Divide una cadena en varias usando un carácter separador. • sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual que printf pero el resultado es devuelto como una cadena. • substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud longitud. • chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena. • strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición en la que se encuentra. • str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto. Manipulación de Arreglos Ejemplo: Funciones de Arreglos array_slice() Para disminuir el número de casillas de un arreglo tenemos varias funciones. Entre ellas, array_slice() la utilizamos cuando queremos recortar algunas casillas del arreglo, sabiendo los índices de las casillas que deseamos conservar. array_shift() Esta función extrae el primer elemento del array y lo devuelve. Además, acorta la longitud del array eliminando el elemento que estaba en la primera casilla. Siempre hace lo mismo, por tanto, no recibirá más que el array al que se desea eliminar la primera posición. unset() Se utiliza para destruir una variable dada. En el caso de los arreglos, se puede utilizar para eliminar una casilla de un array asociativo (los que no tienen índices numéricos sino que su índice es una cadena de caracteres). array_push() Inserta al final del array una serie de casillas que se le indiquen por parámetro. Por tanto, el número de casillas del array aumentará en tantos elementos como se hayan indicado en el parámetro de la función. Devuelve el número de casillas del array resultante.
  • 7. array_merge() Ahora vamos a ver cómo unir dos arrays utilizando la función array_merge(). A ésta se le pasan dos o más arrays por parámetro y devuelve un arreglo con todos los campos de los vectores pasados. Declaracion de Funciones La declaración da a conocer la función al compilador, de forma que a partir del punto de declaración, ya se pueden realizar invocaciones a la misma. A su vez, la definición estará en algún otro punto del programa, tal vez en una librería externa (en forma ya compilada) o en otro módulo de programa (como texto fuente). Una función puede ser declarada varias veces en un mismo programa, y las declaraciones pueden aparecer en cualquier orden; en un fichero fuente o en varios, pero en cualquier caso antes de su uso, es decir: antes de cualquier invocación a la función . Además de declarar el nombre de la función y el tipo devuelto (por defecto se supone int se declaran también el tipo de los parámetros. Ejemplo: extern int funcion1 (); // no acepta ningún argumento extern int funcion1 (void); // mejor que la anterior funcion2 (char, int); // por defecto supone que devuelve int int funcion2 (char, int); // mejor que la anterior char funcion3 (char c, int i); // incluye nombres de parámetros Nota: los compiladores MS Visual C++ y Borland C++ admiten que ciertos especificadores opcionales acompañen a la declaración de funciones y otros objetos. Tales especificadores son de utilidad en circunstancias específicas Al tratar de la construcción de un programa señalamos que en ocasiones no se desea construir un ejecutable, al menos no en el sentido tradicional del término, sino una librería, y que estas librerías son trozos de código que contienen alguna funcionalidad pre-construida que puede ser utilizada por un ejecutable. Por supuesto, las librerías contienen en su interior variables y funciones. Si como suponemos son librerías C++, lo más probable es que estas variables y funciones estén encapsuladas en forma de clases. Observe que la idea central de librería es precisamente la de ser un módulo de
  • 8. software preconstruido -generalmente por terderos- para cuya utilización no es necesario conocer los detalles íntimos de su funcionamiento, sino su interfaz. Es decir, que respuestas nos puede dar y cómo hay que preguntar -a la librería- para obtenerlas. En general, el término librería se utiliza para referirse a un conjunto de módulos objeto .obj / .o (resultados de compilación) agrupados en un solo fichero que suele tener las extensiones .lib, .bpl.a, .dll, etc. Estos ficheros permiten tratar las colecciones de módulos como una sola unidad, y representan una forma muy conveniente para el manejo y desarrollo de aplicaciones grandes, además de ser un concepto muy fértil para la industria del software, ya que permiten la existencia de las librerías de los propios compiladores Librerías estáticas Denominadas también librerías-objeto, son colecciones de ficheros objeto (compilados) agrupados en un solo fichero de extensión .lib, .a, etc. junto con uno o varios ficheros de cabecera Librerías dinámicas Otra forma de añadir funcionalidad a un ejecutable son las denominadas librerías de enlazado dinámico (repasar en 1.4.4 el significado de "enlazado dinámico"), generalmente conocidas como DLLs, acrónimo de su nombre en inglés ("Dynamic Linked Library"). Estas librerías se utilizan mucho en la programación para el SO Windows. Este Sistema contiene un gran número de tales librerías de terminación .DLL, aunque en realidad pueden tener cualquier otra terminación .EXE, .FON, .BPI, .DRV etc. Cualquiera que sea su terminación, de forma genérica nos referiremos a ellas como DLLs, nombre por el que son más conocidas.
  • 9. En cierta forma, los formularios nos permiten manejar el ingreso de los datos en una aplicación WEB. Por medio de estos verdaderos repositorios de datos, podemos enviar informacióndirectamente al Servidor (Base de Datos) o bien, manejar información para ser procesadaen forma posterior. La estructura general de un formulario es: 1. Etiqueta de inicio: <FORM ACTION="mailto:dirección_de_email" METHOD="POST"> 2. Cuerpo del formulario, con los distintos elementos para poder introducir los datos. 3. Botones de envío y/o de borrado. 4. Etiqueta de cierre </FORM> Supongamos el siguiente ejemplo, denominadoformular io. 2. ht Métodos de envió de datos GET y POST Son los métodos de los cuales los datos de un formulario son enviados, el método es indicado en el atributo method y los dos métodos posibles son GET y POST. La diferencia entre estos dos métodos radica en la forma de enviar los datos a la página, mientras que el método GET envía los datos usando la URL, el método POST los envía por la entrada estándar STDIO, en otras palabras se pasa los datos codificados en el flujo de datos HTTP y los datos no son visibles para los usuarios. Tipos de contenido enviado por un formulario En los tipos de contenidos posibles: * multipart/form-data: cuando se envían archivos. * text/plain: solo texto legible. Cajas de Texto El usuario podrá ingresar texto en el formulario por medio de la etiqueta <input/>
  • 10. ¿Qué son las redirecciones? Las redirecciones le indican tanto a los buscadores como a los usuarios que el contenido al que se desea acceder se ha movido de una ubicación a otra. Existen dos tipos principales de redirecciones que tienen distintos efectos: • Redireccionamiento Permanente 301: Muestra un código de estado HTTP 301 que indica que el contenido se ha movido de forma permanente a otra ubicación, por lo cual los buscadores dejarán de tomar en cuenta la URL antigua en su índice para incluir la nueva. Redirige tanto a los usuarios como a los buscadores y transmite la fuerza SEO que tenía la página en la ubicación anterior a la nueva. • Redireccionamiento Temporal 302: Muestra un código de estado HTTP 302 que indica que el contenido se ha movido de forma temporal a otra ubicación, por lo cual aunque redirige tanto a los usuarios como a los buscadores, no transmite la fuerza SEO de la URL antigua a la nueva. ¿Cuándo se debe hacer uso de las redirecciones? Las redirecciones son útiles para redirigir a los usuarios y buscadores en diversas situaciones, entre otras, cuando: Se ha publicado una nueva versión de una página ya existente El contenido publicado en una página ha expirado y se desea eliminar Existe contenido duplicado: El mismo contenido en múltiples URLs o tienes problemas de Canonicalización. Se cambia el dominio del sitio Se desea modificar la estructura de URLs de un sitio
  • 11. Debido a las diferencias planteadas anteriormente de los dos tipos principales de redireccionamientos es muy importante tomar en cuenta no sólo su uso de cara al usuario (si tiene a la página que ha cambiado de ubicación entre sus favoritos y accede a ella) sino también de cara a los buscadores (si la página se encuentra ya posicionada y tiene enlaces entrantes), por lo que a no ser por casos muy específicos, usualmente el tipo que beneficiará en las situaciones descritas es el redireccionamiento 301. ¿Cómo se implementan las redirecciones? Las redirecciones pueden ser implementadas de múltiples formas, tanto a nivel del código de las páginas como del servidor. En el caso que sólo se desee implementar la redirección a una sola URL podría parecer más fácil hacerlo directamente a través del código, sin embargo, para tener un control y acceso único a las redirecciones que se realizan en una Web, lo mejor es realizarlo a nivel de servidor, como lo aconseja el propio Google. Las redirecciones pueden ser implementadas en el lenguaje de programación de la página, por ejemplo, directamente en PHP o ASP, pero se debe de asegurar que el código de estado HTTP que se muestra es 301. Es importante señalar que existen otros métodos para implementar redirecciones a nivel de código de las páginas que no son aconsejados como los realizados a través de la etiqueta meta-refresh o javascript (utilizados usualmente para hacer spam) ya que no tienen el efecto de un redireccionamiento 301. Por otro lado, para implementar redirecciones 301 a nivel de servidor puedes hacerlo en Apache editando el archivo Htaccesscon las directivas “Redirect” o “Rewrite Rules”. A continuación tienes un compendio de guías sobre cómo implementar redirecciones 301 en Apache: • Guide to Applying 301 Redirects with Apache • Apache Redirects for SEOs • .htaccess, 301 Redirects & SEO • Editar htaccess para crear direcciones URL amigables • Cambio de URL redirección 301 con .htaccess • .htaccess 301 Redirect Para implementar redirecciones 301 en un servidor Web ejecutando Microsoft IIS se puede hacer uso de la consola de IISo de directivas similares a la de
  • 12. Mod_Rewrite en Apache, en caso que se utilice un plug-in como ISAPI_Rewrite.