C

cela_59

Usuario (Argentina)

Primer post: 28 mar 2011Último post: 28 mar 2011
3
Posts
10
Puntos totales
0
Comentarios
Manual PHP (PRIMERA PARTE)
Manual PHP (PRIMERA PARTE)
Apuntes Y MonografiasporAnónimo3/28/2011

Hola a Todos!! Este es un tutorial que me mandó una amiga y me está siendo útil. Espero que a ustedes también. Manual de PHP - PRIMERA PARTE: Qué es PHP Contenido [ocultar] • 1 Concepto de PHP • 2 Qué podemos hacer con PHP y para qué nos sirve Concepto de PHP Según diversas fuentes como la Wikipedia y la documentación Oficial podemos resumirlo en lo siguiente: PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.. Es un acrónimo de "PHP: Hypertext Preprocessor", la mayor parte de su sintaxis es similar a C, Java y Perl, y es fácil de aprender. La meta de este lenguaje es permitir escribir a los creadores de páginas web, páginas dinámicas de una manera rápida y fácil, aunque se pueda hacer mucho más con PHP. Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementación principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Qué podemos hacer con PHP y para qué nos sirve Con PHP podemos realizar programas, aplicaciones web, servicios del lado del servidor y un sin fin de opciones que podemos ver en casi todos los sitios que visitamos a diario pues este lenguaje es uno de los más populares en la actualidad. Estos son algunos sitios o servicios que están realizados en su mayoría con PHP para que puedas ver el potencial del lenguaje. • Wordpress.org – El sistema más utilizado para crear blogs, que actualmente alcanza el título de CMS con cientos de poderosas opciones que permiten personalizarlo. • Wordpress.com – Uno de los servicios favoritos para iniciar tu propio blog sin necesidad de un servicio de hosting. • La Wikipedia – funciona gracias al software llamado mediawiki que está escrito con PHP. • vBulletin - Es uno de los softwares más robustos para tener un sistema de foros en tu servidor, también existe phpbb quien fuera uno de los sistemas más populares hace algunos años también fue creado en PHP y debido a eso su nombre. • Se sabe que Facebook, una de las redes sociales más grandes fue programado en su mayoría utilizando PHP, además poseen una API para crear aplicaciones que interactuen con su sitio las cuales pueden ser creadas con el mismo lenguaje. Como ves, la robustez de PHP ha sido probada en un sin fin de servicios y distintos sitios que visitamos a diario, lo cual espero sea una motivación para que te animes a aprender este lenguaje. Además, PHP no devuelve solamente código HTML al navegador, entre muchas de sus funciones también puede crear imágenes, generar miniaturas de las mismas, crear archivos PDF en base a contenido definido o crear archivos de tipo Flash en el instante y bajo demanda, entre muchas cosas más, todo depende del uso adecuado de librerías y el conocimiento del lenguaje. En lo que se refiere a datos almacenados, PHP soporta una gran cantidad de bases de datos para interactuar con la información, son más de veinte distintas a las que podemos ingresar datos o extraer, entre las que se encuentran: • Oracle • Informix • MySQL • MS SQL Server • Sybase y muchas otras. Manual de PHP: Requisitos para iniciar a programar con PHP Contenido [ocultar] • 1 Windows • 2 Mac OS • 3 Linux • 4 Editores de Código Como ya dijimos en un inicio, PHP es un lenguaje que se ejecuta del lado del servidor, por ello necesitamos tener ciertas herramientas que nos ayudarán a poder ver los resultados de nuestros primeros programas. PHP fue diseñado para ejecutarse junto a Apache que es un servidor web para sistemas operativos Linux, pero en la actualidad lo podemos instalar también en Windows y Mac OS, así como otras alternativas de servidor web que han ido apareciendo. Para aprender a programar no necesitas gastar un solo centavo, todo lo puedes hacer desde la computadora de tu casa para empezar utilizaremos aplicaciones que nos ayudarán a tener instalado el servidor de archivos, el intérprete del lenguaje y una base de datos, todo de forma automática (aunque también se podría instalar todo por separado). Windows • XAMPP es uno de los más utilizados y confiables o La ruta para guardar tus archivos debería ser C:/xampp/htdocs o en su defecto la ruta donde este instalado XAMPP • También puedes usar WAMP, que es para Windows solamente. o La ruta para guardar tus archivos debería ser C:/wamp/www o en su defecto la ruta donde este instalado WAMP • También es posible instalar el servidor web y PHP por separado. Mac OS • Todo viene instalado de base a excepción de MySQL pero requiere de algún tiempo para configurarlo, por eso te recomiendo que instales MAMP en su versión gratuita. o La ruta para guardar tus archivos debería ser /Macintosh HD/Applications/MAMP/htdocs Linux • XAMPP también puede instalarse en sistemas como Ubuntu. o La ruta para guardar tus archivos debería ser /opt/lampp/htdocs/ o en su defecto la ruta donde este instalado XAMPP aunque lo mejor es hacer un symlink a alguna carpeta que pertenezca al usuario ya que por defecto /opt/lampp/htdocs/ pertenece a root • También es posible instalar un servidor web (lighttpd, apache son algunos ejemplos), y las librerías de php por separado, así como el mysql y otras utilidades. El directorio por defecto para guardar los archivos es /var/www/, que se puede cambiar en la configuración del servidor web. • En algunas distribuciones Linux viene instalado por defecto. Luego de instalar cualquiera de las alternativas toma en cuenta la ruta en donde debes crear tus propios archivos para que allí almacenes todos los ejemplos que vamos a realizar. Una breve explicación de lo que hace cada elemento que se ha instalado en nuestra computadora • El servidor Apache entrega los archivos para que puedan ser mostrados en el navegador. • El interprete o módulo de apache lee el código de los archivos .php y lo ejecuta en base al contenido. • En el tiempo de ejecución puede realizar una consulta a una base de datos como Mysql, para ingresar o leer información. • Y entonces mostrarse el resultado en el navegador. Editores de Código Para escribir el código de nuestros programas podemos utilizar cualquier aplicación como el Block de Notas de Windows, es decir no necesitamos ninguna herramienta sofisticada, sin embargo algunas aplicaciones nos ayudarán a visualizar mejor lo que estamos programando, así que recomendamos algunas que puedes bajar y probar, cualquiera que elijas estará bien. • Notepad++ - Windows (Gratuito) • PSPad - Windows (Gratuito) • gedit - Linux (Ya incluido en gnome) • Smultron - Mac OS (Gratuito) Manual de PHP: Sintaxis de programación La sintaxis se refiere a las formas y estructura que debe tener un lenguaje para su correcta interpertación. Está formado por un conjunto de reglas básicas que debemos tener en cuenta a la hora de escribirlo. Este concepto se aplica a situaciones de la vida cotidiana, como al escribir una oración o una frase, o en el simple hecho de hablar. Debemos expresar lo que queremos con una sintaxis adecuada para que terceras personas puedan entender de manera sencilla y correcta lo que queremos decir. En programación, igual hay pautas que debemos tomar muy en cuenta para que nuestros programas puedan ser entendidos e interpretados por el procesador, en este caso el servidor PHP. Si no los escribimos correctamente, el servidor no sabrá que es lo que tine que hacer y en muchos casos generará errores que imposibilitan la ejecución de los scripts. Contenido [ocultar] • 1 Delimitación del código PHP • 2 Separación de instrucciones • 3 Desplegar la información • 4 Comentarios en nuestro código Delimitación del código PHP El título de esta sección puede resultar algo difícil de entender. Empecemos por recordar que al iniciar la ejecución de un script, el servidor PHP busca en nuestro código instrucciones PHP que deban ser interpretadas. Pero esto no se hace de manera arbritaria, sino que debemos indicarle al servidor PHP que empiece a leer y ejecutar el código cuando sea necesario. Así como en Javascript usamos los tags <script language="javascript"> y </script> para delimitar el código javascript que queremos incluir, en PHP hay tags que le van a decir al intérprete PHP que el código que está entre ellos es código PHP. Los más conocidos son <?php para iniciar el código, y ?> para cerrarlo. Sin embargo, son 4 las opciones que tenemos para hacerlo. * <?php ... ?> * <script language="php"> ... </script> * <? ... ?> * <% ... %> De ellos, los dos primeros siempre estarán disponibles, y los dos últimos deben ser habilitados en la configuración de PHP para que funcionen correctamente. Es por eso que se recomienda siempre usar el primer conjunto de tags: <?php y ?> para lograr la mayor compatibilidad de nuestros scripts en todos los servidores. En PHP6 se eliminará el soporte al último de ellos <% y %>. Todo lo que esté encerrado entre esos símbolos será reconocido por el servidor como código PHP, y empezará a leerlo e interpretarlo. El siguiente ejemplo es para mostrar sólo la correcta inclusión de código PHP en un script: .php.code {background: #EEEEEE; border: padding: 0.2em} .php.code .imp {font-weight: bold; color: red;} .php.code .kw1 {color: #b1b100;} .php.code .kw2 {color: #000000; font-weight: bold;} .php.code .kw3 {color: #990000;} .php.code .co1 {color: #666666; font-style: italic;} .php.code .co2 {color: #666666; font-style: italic;} .php.code .co3 {color: #0000cc; font-style: italic;} .php.code .co4 {color: #0000ff; font-style: italic;} .php.code .coMULTI {color: #666666; font-style: italic;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .br0 {color: #009900;} .php.code .sy0 {color: #339933;} .php.code .st0 {color: #0000ff;} .php.code .st_h {color: #0000ff;} .php.code .nu0 {color: #cc66cc;} .php.code .nu8 {color: #208080;} .php.code .nu12 {color: #208080;} .php.code .nu19 {color:#800080;} .php.code .me1 {color: #004000;} .php.code .me2 {color: #004000;} .php.code .re0 {color: #000088;} .php.code span.xtra { display:block; } <?php echo "Hola mundo"; ?> El tag de cierre ?> es opcional, y se usa solamente cuando queremos dejar de interpretar la salida en PHP, por lo general se recomienda no usarlo si el archivo es de puro código PHP. Después veremos por qué. Separación de instrucciones Como dijimos, un programa o script en PHP es un conjunto de instrucciones que deben ser leídas por el servidor para generar un resultado. Si analizamos este concepto, podremos deducir que no se trata de una sóla intrucción, sino mas bien de una serie de ellas que en conjunto realizarán determinadas tareas. Para separar las diferentes instrucciones una de otra usamos, al igual que en Pascal, el punto y coma (. Usaremos este punto para decir que PHP es un lenguaje "ciego" a los espacios en blanco y saltos de línea antes o después de una intrucción. Gracias a esto podemos insertar tabulaciones y saltos de línea en nuestro código, para así lograr una mejor organización del mismo, en base a "niveles". Como veremos a lo largo de este manual, esta aclaración ayudará a lograr un mejor código, visualmente hablando, aunque el resultado será igual que si no añadiésemos nada. .php.code {background: #EEEEEE; border: padding: 0.2em} .php.code .imp {font-weight: bold; color: red;} .php.code .kw1 {color: #b1b100;} .php.code .kw2 {color: #000000; font-weight: bold;} .php.code .kw3 {color: #990000;} .php.code .co1 {color: #666666; font-style: italic;} .php.code .co2 {color: #666666; font-style: italic;} .php.code .co3 {color: #0000cc; font-style: italic;} .php.code .co4 {color: #0000ff; font-style: italic;} .php.code .coMULTI {color: #666666; font-style: italic;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .br0 {color: #009900;} .php.code .sy0 {color: #339933;} .php.code .st0 {color: #0000ff;} .php.code .st_h {color: #0000ff;} .php.code .nu0 {color: #cc66cc;} .php.code .nu8 {color: #208080;} .php.code .nu12 {color: #208080;} .php.code .nu19 {color:#800080;} .php.code .me1 {color: #004000;} .php.code .me2 {color: #004000;} .php.code .re0 {color: #000088;} .php.code span.xtra { display:block; } <?php $variable = "Esta es una variable PHP"; echo $variable; echo "Dos instrucciones..."; echo "...en la misma línea"; ?> Es obligatorio separar las diferentes instrucciones, pues si no lo hacemos obtendremos un error por parte del servidor. Aunque se verá después, adelantaremos que una palabra precedida del signo de dolar ($) indica que esa palabra es en realidad una variable en PHP. Desplegar la información Para desplegar o imprimir información en la pantalla utilizaremos algunas instrucciones echo "Texto impreso con echo"; print "Texto impreso con print"; Comentarios en nuestro código Un comentario significa un texto que sólo el programador o aquel que vea el código puede leerlo, pero no interfiere en absoluto en la ejecución del script. En otras palabras, resulta invisible para el intérprete PHP. Es ùtil para indicar qué hace cada espacio de programación dentro del código, lo cual es una muy buena práctica para ayudar a identificar y separar las diferentes secciones del script en base a su función; o incluso es posible comentar también el código PHP para que éste no sea interpretado, con la ventaja de que está ahí disponible para cuando sea necesario. Cuando queremos hacer un comentario o evitar que se ejecute un código que hayamos programado debemos utilizar los símbolos // ó #, y si queremos comentar todo un bloque con varias líneas debemos encerrarlo entre /* y */. ejemplos: .php.code {background: #EEEEEE; border: padding: 0.2em} .php.code .imp {font-weight: bold; color: red;} .php.code .kw1 {color: #b1b100;} .php.code .kw2 {color: #000000; font-weight: bold;} .php.code .kw3 {color: #990000;} .php.code .co1 {color: #666666; font-style: italic;} .php.code .co2 {color: #666666; font-style: italic;} .php.code .co3 {color: #0000cc; font-style: italic;} .php.code .co4 {color: #0000ff; font-style: italic;} .php.code .coMULTI {color: #666666; font-style: italic;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .br0 {color: #009900;} .php.code .sy0 {color: #339933;} .php.code .st0 {color: #0000ff;} .php.code .st_h {color: #0000ff;} .php.code .nu0 {color: #cc66cc;} .php.code .nu8 {color: #208080;} .php.code .nu12 {color: #208080;} .php.code .nu19 {color:#800080;} .php.code .me1 {color: #004000;} .php.code .me2 {color: #004000;} .php.code .re0 {color: #000088;} .php.code span.xtra { display:block; } // Este es un comentario de una sóla línea echo "Un texto"; /* Este programa fue creado por Oscar Mota y su función es mostrar la utilidad de los comentarios en un script */ echo "Más texto"; // O podemos comentar también una porción de código # echo "Esta instrucción no se ejecuta pues está comentada"; Como habrás notado, un comentario no es una intrucción propiamente dicha, por lo tanto, no requiere terminar con el delimitador ; No hay un consenso sobre cuál de esas tres formas deberíamos usar para comentar en el script. El criterio del programador juega un papel importante en ello, pues al final, es el único que podrá leer los comentarios en el script. Personalmente, recomiendo usar // para escribir comentarios textuales acerca de la función de alguna línea de código, y # dejarlo para comentar líneas de código. A estas alturas, de más está decir que un comentario puede ir inmediatamente después de una intrucción (en la misma línea), pues como dijimos PHP es ciego a los saltos de línea. Sin embargo, como excepción a esta regla, una vez que iniciamos un comentario lineal (con // o #) todo lo que está después de él en la misma línea será ignorado por el servidor: echo "Este texto sí se imprime"; // Un comentario acerca de ésta línea // Otro comentario. echo "Este texto no se imprime pues forma parte del comentario"; Manual de PHP: Nuestro primer programa Vamos a la acción, a realizar nuestro primer programa poniendo en práctica lo aprendido hasta ahora. Recuerda que una de las características del lenguaje PHP es que puede ser intercalado con código HTML; simplemente debemos abrir y cerrar el intérprete usando los tags de apertura <?php y cierre ?> para indicar qué bloques de código deben ser leídos como código PHP. Por lo tanto, lo que haremos primero es crear la base de un archivo HTML. <html> <body> </body> </html> Guarda este archivo con el nombre primer_script.php en la ruta que mencionamos en los requisitos para aprender PHP , y dirige tu navegador a la siguiente dirección que por el momento será solo una página en blanco http://localhost/primer_script.php Ahora que tienes la plantilla básica en HTML para tu primer programa, agrega el código PHP. Fíjate además que en el ejemplo se usan comentarios para indicar que hace cada línea en tu primer script. <html> <body> <?php // Iniciamos el intérprete de PHP usando <?php echo "Hola, esto es una prueba"; // Este es mi primer programa en php /* La función anterior debería mostrar en el navegador, el texto que está entre comillas. Además, hemos usado espacios al inicio de las líneas para así diferenciar claramente el código PHP */ ?> </body> </html> Guarda el archivo y recarga el navegador, deberías poder ver el mensaje "Hola, esto es una prueba" en la pantalla; si así es, significa que ya has creado tu primer programa en PHP. Si no te ha salido nada o ha mostrado algún error verifica que el código de tu archivo sea idéntico al del ejemplo, y revisa la ruta en donde guardaste el archivo. Como puedes ver, cada vez que queramos imprimir un texto en pantalla tendremos que usar la instrucción echo seguida del texto que queremos mostrar, encerrado entre comillas simples o comillas dobles. Además, que no se te olvide agregar el ; al final para dejar claro al intérprete PHP que la instrucción echo ya terminó, si no haces eso obtendrías un error al colocar la siguiente instrucción. Manual de PHP: Variables Contenido [ocultar] • 1 ¿Qué son las variables? • 2 Creación y modificación de Variables • 3 Tipos de Variables • 4 Variables y Cadenas de Texto • 5 Ámbito de las Variables • 6 Ejemplos en el uso de variables

0
0
Manual PHP (SEGUNDA PARTE)
Manual PHP (SEGUNDA PARTE)
Apuntes Y MonografiasporAnónimo3/28/2011

¿Qué son las variables? Las variables, como son conocidas, no son más que almacenes de información. Éstas tienen por finalidad guardar información que luego utilizarás o que te servirá para realizar una operación determinada. Como su nombre lo indica, su contenido es variable; es decir, puedes modificar, crear o destruir variables todo el tiempo a lo largo del script. Por ejemplo podemos hacer un programa conversor de monedas, entonces en una variable llamada $tipodecambio podemos grabar el valor por el que debe ser multiplicada la otra moneda. $tipodecambio = 7.25; Si te fijas en este ejemplo, notarás que una variable es en realidad una palabra precedida del signo de dólar ($). Aunque suene obvio, hay que indicar que las variables dentro de nuestro script deben tener nombres distintos. Un nombre de variable válido será aquel que empiece por un caracter alfabético [a-z] o de subrayado [_], seguido de caracteres alfanuméricos [a-z y 0-9] y de subrayado [_]. En otras palabras, una variable NO puede empezar con caracteres numéricos, ni puede contener caracteres especiales [signos de puntuación, letras especiales como ñ, acentos, etc.). Sólo letras, números y caracteres de subrayado (_). Además, es importante saber que el nombre de variable es case sensitive, osea sensible a mayúsculas y minúsculas; por lo tanto, no es lo mismo $variable que $Variable. Creación y modificación de Variables Como has visto en el ejemplo anterior, crear variables es muy sencillo. No es necesario declararlas antes de usarlas como se hace en otros lenguajes pues podemos asignarles valores desde un inicio. Basta con escribir la variable, seguida del signo igual (=), y luego su valor. Para modificar su valor hay que repetir esta sencilla operación, asignando el nuevo valor a la variable. .php.code {background: #EEEEEE; border: padding: 0.2em} .php.code .imp {font-weight: bold; color: red;} .php.code .kw1 {color: #b1b100;} .php.code .kw2 {color: #000000; font-weight: bold;} .php.code .kw3 {color: #990000;} .php.code .co1 {color: #666666; font-style: italic;} .php.code .co2 {color: #666666; font-style: italic;} .php.code .co3 {color: #0000cc; font-style: italic;} .php.code .co4 {color: #0000ff; font-style: italic;} .php.code .coMULTI {color: #666666; font-style: italic;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .br0 {color: #009900;} .php.code .sy0 {color: #339933;} .php.code .st0 {color: #0000ff;} .php.code .st_h {color: #0000ff;} .php.code .nu0 {color: #cc66cc;} .php.code .nu8 {color: #208080;} .php.code .nu12 {color: #208080;} .php.code .nu19 {color:#800080;} .php.code .me1 {color: #004000;} .php.code .me2 {color: #004000;} .php.code .re0 {color: #000088;} .php.code span.xtra { display:block; } //Creamos la variable $mi_variable = "Valor inicial de mi variable"; // La imprimimos echo $mi_variable; // Modificamos su valor $mi_variable = "Nuevo valor de mi variable"; // La imprimimos nuevamente para demostrar que su valor es ahora distinto echo $mi_variable; Deliberadamente, hasta ahora, hemos usado valores de texto (o de tipo string) para casi todos los ejemplos. Pero, como veremos en el siguiente punto, hay muchos tipos de variables, cada uno con una finalidad específica. Tipos de Variables El tipo de variable está dado por el tipo de datos que ésta contiene. Entonces, al hablar de tipos de variables en realidad estamos hablando de tipos de datos que PHP maneja. Hay distintos tipos de variables y cada una tiene un uso específico: .php.code {background: #EEEEEE; border: padding: 0.2em} .php.code .imp {font-weight: bold; color: red;} .php.code .kw1 {color: #b1b100;} .php.code .kw2 {color: #000000; font-weight: bold;} .php.code .kw3 {color: #990000;} .php.code .co1 {color: #666666; font-style: italic;} .php.code .co2 {color: #666666; font-style: italic;} .php.code .co3 {color: #0000cc; font-style: italic;} .php.code .co4 {color: #0000ff; font-style: italic;} .php.code .coMULTI {color: #666666; font-style: italic;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .br0 {color: #009900;} .php.code .sy0 {color: #339933;} .php.code .st0 {color: #0000ff;} .php.code .st_h {color: #0000ff;} .php.code .nu0 {color: #cc66cc;} .php.code .nu8 {color: #208080;} .php.code .nu12 {color: #208080;} .php.code .nu19 {color:#800080;} .php.code .me1 {color: #004000;} .php.code .me2 {color: #004000;} .php.code .re0 {color: #000088;} .php.code span.xtra { display:block; } $tipodecambio = 7.25; $nombre = 'Oscar Mota'; $pagado = true; Si ya tienes algunos conceptos de programación notarás cómo en el segundo ejemplo hemos declarado una variable de tipo string y lo único que hemos hecho es colocarle comillas al valor, en los otros casos no lo necesita, como el primer ejemplo que es una variable de tipo double o float (numérica) y en el último ejemplo que sería una de tipo boolean (falso y verdadero). En otra sección revisaremos los tipos de datos más usados en PHP. Variables y Cadenas de Texto Una importante característica de PHP es que uno puede expandir variables dentro de las cadenas de texto si éstas están rodeadas por comillas dobles (". Por ejemplo veamos este código: $nombre = 'Oscar Mota'; $saludo = "Hola $nombre como estas?"; echo $saludo; // Esto imprime Hola Oscar Mota como estas? Esta caracteristica importante de PHP es luego el dolor de cabeza de muchos programadores, ya que luego al querer imprimir cadenas HTML con comillas se crean errores. Lo importante es decidir qué comillas se van a utilizar; si necesitas muchas comillas dobles, crea tu cadena con comillas simples, por ejemplo, imprimir un atributo HTML: $div = '<a href="http://www.forosdelweb.com/" title="Foros del Web" id="link_fdw" style="link_azul">Link a Foros del Web</a>'; Otra caracteristica de PHP es el operador de unión de cadenas (.). Con este operador podemos unir dos o más cadenas de texto, o incluso cadenas con variable, de manera que formen parte de la misma serie de datos. $cadena1 = "Hola mundo"; $cadena2 = ", este es "; $texto = $cadena1 . "$cadena2 mi primer script"; echo $texto; // Imprime: Hola mundo, este es mi primer script Como se aprecia en el último ejemplo, el usar comillas dobles hace que las variables en el texto sean reemplazadas por sus valores correspondientes, no así con las comillas simples. Ámbito de las Variables Hay dos tipos de ámbitos en los que se puede declarar las variables: local y global. La diferencia es que las variables locales solo pueden ser usadas dentro de la función en donde fueron definidas, mientras que las globales las podemos utilizar en cualquier parte de nuestro script y desde diferentes funciones. Por norma general cada variable es tomada como local a menos que se declare de diferente forma para que sea global, ejemplo: global $nombre_del_sitio = "Foros del Web"; Veremos la aplicación de este concepto cuando veamos el uso de funciones en PHP. Ejemplos en el uso de variables Tomando como base el punto anterior podemos hacerle modificaciones a nuestro primer programa para que luzca de la siguiente forma <html> <body> <?php // Este es mi segundo programa en php $texto = "Hola, soy una variable con un texto"; echo $texto; ?> </body> </html> Puedes grabarlo con el nombre que desees y verás que funciona de igual forma que el primer ejemplo, pero si nos fijamos en el código vemos que hemos almacenado un valor en la variable $texto y que para desplegarlo hemos utilizado de nuevo el comando echo, pero ahora sin las comillas pues que lo que queremos es que imprima el contenido de la variable. También podemos imprimir en pantalla el resultado de una variable más algún texto específico en una misma línea, por ejemplo: <body> <html> <?php $texto = "Hola, soy una variable con un texto"; echo "El programa quiere saludarte: " . $texto; ?> </body> </html> Manual de PHP: Tipos de Datos Contenido • 1 String: Datos tipo texto o 1.1 Escape de caracteres o 1.2 Uso de comillas dobles o 1.3 HEREDOC y NOWDOC • 2 Int, Float: Datos tipo numérico • 3 Boolean: Datos tipo V/F • 4 Array: Usando matrices • 5 NULL: Datos que no existen • 6 Otros tipos PHP soporta diferentes tipos de datos, los cuáles cumplen un rol específico dentro de nuestros programas. Revisemos brevemente los más conocidos: String: Datos tipo texto Los datos tipo string son datos de texto, que pueden incluir caracteres alfanuméricos, signos, espacios, etc. No hay límite en la longitud de este tipo de datos, y su finalidad es transmitir información textual, como una oración, un párrafo, un texto entero. Existen varias formas de definirlos en el código, la más conocida y usada es encerrar el texto entre comillas (simples o dobles), pero también existen los formatos HEREDOC y NOWDOC: echo "Este es un dato tipo string"; $variable = 'También pueden ser asignados a una variable'; $hereDoc = <<<HD Este tambien es un dato tipo string HD; $nowDoc = <<<'ND' Continuamos con el dato tipo string ND; Escape de caracteres Un dato tipo texto, como ya dijimos, puede contener cualquier caracter, y debe ser delimitado por comillas simples o dobles. Un dolor de cabeza frecuente para muchos desarrolladores es la necesidad de imprimir un texto que contiene ambos tipos de comillas. Si delimitamos nuestro texto con comillas simples, entonces tendremos un problema a la hora de querer incluir una comilla simple textual dentro de nuestro texto, sin que esto indique el fin de la cadena. Para solucionar esto podemos escapar esa comilla simple que queremos que sea interpretada textualmente. Para escapar un caracter debemos precederlo por una barra invertida () Veamos un ejemplo: $texto = 'Nuestro foro se llama 'Foros del Web' y ahora tiene un wiki!'; echo $texto; // Imprime: Nuestro foro se llama 'Foros del Web' y ahora tiene un wiki! Al usar una barra invertida delante de la comilla simple, le indicamos al intérprete PHP que ese caracter debe ser tomado textualmente y no como el final de la cadena. Intentar escapar cualquier otro caracter hará que la barra invertida sea tomada también textualmente. Uso de comillas dobles Las cadenas se pueden delimitar usando comillas simples y dobles, pero no se comportan de igual manera. El uso de comillas dobles tiene una característica adicional: Las variables incluídas en ese texto son procesadas y reemplazadas por su valor. Veamos el siguiente ejemplo: $nombre = "Marco Madueño"; // Recordemos que los datos tipo texto pueden contener cualquier caracter echo "Bienvenido, "$nombre""; // Imprime: Bienvenido, "Marco Madueño" Como ves, al usar comillas dobles, al igual que con las simples, podemos también escaparlas cuando queramos imprimirlas textualmente. Y adicionalmente, si queremos imprimir el signo de dólar sin que éste sea tomado como parte de un nombre de variable, también podemos escaparlo. Nota la diferencia entre usar comillas simples y dobles: echo 'El valor de la variable $nombre es $nombre'; // Imprime: El valor de la variable $nombre es $nombre echo "El valor de la variable $nombre es $nombre"; // Imprime: El valor de la variable $nombre es Marco Madueño Usando comillas dobles disponemos también de ciertos caracteres especiales. Los más usados son: * n : Salto de línea * r : Retorno de carro * t : Tabulación echo "Este texto va en una línea n Este va en la siguiente"; /* Imprime: Este texto va en una línea Este va en la siguiente */ OJO, el salto de línea n no es un salto de línea HTML (como <br>. Si ejecutas el código anterior en tu navegador, verás que se imprime todo en una línea. La diferencia la verás si observas el código fuente generado. A lo largo de este manual verás la importancia de este salto de línea sin ninguna aparente utilidad prática. HEREDOC y NOWDOC Son sintaxis poco usadas, aunque pueden llegar a ser muy prácticas. Primero sepamos que HEREDOC es el equivalente de las comillas dobles, y NOWDOC el de las comillas simples. Estas dos sintaxis nos sirven para imprimir textos sin la necesidad de escapar las comillas. Son útiles a la hora de escribir o almacenar en variables textos largos, proceso engorroso si lo hacemos delimitando la cadena con comillas. Veamos la sintaxis de HEREDOC (Equivalente de las comillas dobles): $variable = "Un valor"; $cadena = <<<FOO Texto largo, de varias líneas, que se imprime usando la sintaxis HEREDOC. Las variables aquí son interpretadas: $variable FOO; echo $cadena; Y un ejemplo de NOWDOC $variable = "Un valor"; $cadena = <<<'ABC' Texto largo, de varias líneas, que se imprime usando la sintaxis NOWDOC. Las variables aquí NO son interpretadas: $variable ABC; echo $cadena; Hay que considerar algunas pautas. Para usar ambas sintaxis, debemos primero colocar el signo menor qué (< 3 veces: <<<, seguidos inmediatamente de un identificador que conste de caracteres alfanuméricos y de subrayado, clásicamente de 3 letras, y luego un salto de línea. Es importante seguir esta secuencia y no agregar nada, como espacios, entre estos elementos. Para usar NOWDOC debemos encerrar el identificador entre comillas simples (ver ejemplo). Para cerrar el bloque, debemos dar un salto de línea, escribir el identificador tal y como lo pusimos al inicio (NOWDOC, ahora NO se incluye las comillas que se colocó al abrir el bloque), cerrar la instrucción (punto y coma y luego dar un salto de línea. No se debe colocar espacios ni tabulaciones antes o después de esta secuencia pues de ser así el bloque de texto no será finalziado. La ventaja principal de estas sintaxis, como ya dijimos, es la posibilidad de escribir bloques largos de texto sin la necesidad de escapar las comillas. Usando HEREDOC las variable y los caracteres especiales ya vistos seguirán siendo reemplazados por sus valores correspondientes, no así con NOWDOC. (AQUÍ) Int, Float: Datos tipo numérico Los datos tipo Int representan números enteros, positivos o negativos; mientras que los datos float o double representan cualquier número real. Estos datos pueden ser usados para realizar operaciones matemáticas simples o complejas. A diferencia de los datos tipo texto, no deben ser encapsulados en comillas. Veamos los siguientes ejemplos: $a = 1; // Entero $a = "1"; // Esto es un dato tipo string $a = 5.45; // Float o Double $b = 3 + 6; // Entero: 9 $d = ( ( $b / 3 ) + 5) * $c - 7; Las operaciones usando datos numéricos siguen los mismos principios que para las matemáticas comunes. Boolean: Datos tipo V/F Los datos tipo boolean son indicadores de verdad o falsedad. Sólo pueden tomar el valor de true y false, y provienen generalmente del resultado de realizar alguna comparación o verificación: <?phpArray: Usando matrices Un array o arreglo es un conjunto de datos organizados en base a índices y valores, de tal manera que determinado índice dentro del array hace referencia a su valor, que puede ser también otro array. Puede ser usado de múltiples maneras. Para crear un array se usa la construcción array() de la siguiente forma: array(indice1 => valor1, indice2 => valor2, ...): $var = array( 1 => "Los índices pueden ser numéricos", "a" => 'o pueden ser textuales', "fdw" => 1, //Los valores tambien pueden ser números "letras" => array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e'), // arrays anidados "bool" => true // O booleanos ); // Los saltos de línea no son necesario, pero ayudan a una mejor visualización del código Para acceder a los elementos de un array se usa el nombre de la variable que lo contiene, seguido del índice del elemento deseado entre corchetes []: echo $var['a']; // Imprime: o pueden ser textuales echo $var['letras'][2]; // Imprime: b Los valores pueden ser de cualquiera de los tipos que soporta PHP. No es necesario indicar los índices, y en ese caso se usarán valores enteros tomando como base el máximo valor entero ya existente: $arreglo = array(3 => "c", "d", "e", "f"; echo $arreglo[5]; // Imprime: e Analiza cada uno de los ejemplos hasta que entiendas el funcionamiento básico de los arrays. Para modificar los elementos de un array lo puedes hacer igual que como si fueran variables: $arreglo = array("fruta1" => "pera", "fruta2" => "manzana", "fruta3" => "banana"; echo $arreglo['fruta2']; // Imprime: manzana $arreglo['fruta2'] = 'naranja'; echo $arreglo['fruta2']; // Imprime: naranja NULL: Datos que no existen NULL (insensible a mayúsculas/minúsculas) es un tipo de dato muy especial, que hace referencia a un valor inexistente. Vale decir, variables tipo null son variables que no han sido creadas y no existen en el script. Se usa, por ejemplo, para eliminar variable ya creadas: $variable = "Existe"; // La eliminamos $variable = null; // Ahora $variable ya no existe en el script Para eliminar variables podemos simplemente asignarles un valor NULL, como ya dijimos, o en su defecto usar la función unset(). Asignarles un espacio en blanco no elimina la variable: // Formas CORRECTAS de eliminar una variable $variable = null; unset($variable); // Formas INCORRECTAS de eliminar una variable $variable = " "; $variable = ""; $variable = 0; $variable = false; $variable; Otros tipos Existen dos tipos más de datos: Los recursos y los objetos. Éstos serán vistos posteriormente, ya que requieren un mayor nivel del conocimiento de PHP y escapan de los objetivos de cualquier tutorial básico. Manual de PHP: Operadores Contenido • 1 ¿Qué son los operadores? o 1.1 Operadores aritméticos o 1.2 Operadores de Asignación o 1.3 Operadores de Comparación o 1.4 Operadores Lógicos ¿Qué son los operadores? Los operadores nos sirven para realizar operaciones entre variables, por ejemplo, sumas, restas, comparaciones, etc, la sintaxis es bastante natural con algunas excepciones. Operadores aritméticos Operador Operación Descripción Ejemplo Resultado + Sumar Suma entre valores x=10+2 12 - Restar Resta entre valores y=5-1 4 * Multiplicar Multiplica distintos valores z=5*5 25 / Dividir Divide entre valores a=20/2 10 % Módulo Devuelve el resto de una división 10%2 0 ++ Incrementar Suma una unidad a determinado valor $b=10; $b=++; 11 -- Disminuir Resta una unidad a determinado valor $b=10; $b=--; 9 Operadores de Asignación Operador Operación Descripción Ejemplo Resultado = Asignar Asigna un valor a una variable $var = 1 $var contiene 1 . Union Une dos variables $var1 . $var2 Union de $var1 con $var2 Operadores de Comparación Operador Descripción Ejemplo Resultado == Compara dos valores (no compara el tipo de variable) $a == $b Verdadero si $a es igual a $b === Compara los dos valores si son iguales y del mismo tipo $a === $b Verdadero si $a es igual a $b y son el mismo tipo de variable != Compara si las variables son diferentes $a != $b Verdadero si $a es diferente de $b <> Compara si las variables son diferentes $a <> $b Verdadero si $a es diferente de $b !== Compara que las dos variables sean diferentes y de diferentes tipos $a !== $b Verdadero si $a y $b son diferentes y son diferentes tipos < Compara que la primera variable sea más pequeña que la segunda $a < $b Verdadero si $a es menor que $b > Compara que la primera variable sea mayor que la segunda $a > $b Verdadero si $a es mayor a $b <= Compara que la primera variable sea menor o igual que la segunda $a <= $b Verdadero si $a es menor o igual a $b >= Compara que la primera variable sea mayor o igual que la segunda $a >= $b Verdadero si $a es mayor o igual a $b Operadores Lógicos Operador Descripción Ejemplo Resultado And Compara que las dos variables sean verdaderas (también se puede usar && $a And $b Verdadero si $a y $b son verdaderos Or Compara que alguna de las dos variables sean verdaderas (también se puede usar ) $a Or $b Verdadero si $a o $b son verdaderos Xor Compara que $a o $b sean verdaderos pero no ambos $a Xor $b Verdadero si $a o $b son verdaderos pero no ambos Not Niega una condición !$a Verdadero si $a es falso Manual de PHP: Condicionales Contenido • 1 Uso de condicionales en la programación • 2 Tipos de condicionales o 2.1 if o 2.2 if … else o 2.3 if … elseif … else o 2.4 switch Uso de condicionales en la programación Los condicionales son de gran ayuda en nuestro trabajo, pues nos permiten realizar una u otra acción en base al resultado verdadero/falso de la condición que establecemos. Como ejemplo, si la variable $edad en el script es mayor a 18 entonces que muestre un mensaje que indique “Ingrese su número de licencia de conducir”, pero si es menor o igual a 18 que no lo haga. Tipos de condicionales if Es la sintaxis básica y la más sencilla dentro de todos los condicionales en PHP. Lo utilizamos para que ejecute determinado código SI Y SÓLO SI la condición es verdadera. .php.code {background: #EEEEEE; border: padding: 0.2em} .php.code .imp {font-weight: bold; color: red;} .php.code .kw1 {color: #b1b100;} .php.code .kw2 {color: #000000; font-weight: bold;} .php.code .kw3 {color: #990000;} .php.code .co1 {color: #666666; font-style: italic;} .php.code .co2 {color: #666666; font-style: italic;} .php.code .co3 {color: #0000cc; font-style: italic;} .php.code .co4 {color: #0000ff; font-style: italic;} .php.code .coMULTI {color: #666666; font-style: italic;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .es_h {color: #000099; font-weight: bold;} .php.code .br0 {color: #009900;} .php.code .sy0 {color: #339933;} .php.code .st0 {color: #0000ff;} .php.code .st_h {color: #0000ff;} .php.code .nu0 {color: #cc66cc;} .php.code .nu8 {color: #208080;} .php.code .nu12 {color: #208080;} .php.code .nu19 {color:#800080;} .php.code .me1 {color: #004000;} .php.code .me2 {color: #004000;} .php.code .re0 {color: #000088;} .php.code span.xtra { display:block; } <?php $estado_civil = 'Casado'; if ($estado_civil == 'Soltero') { echo '¿Está buscando novia?'; } En este caso pudimos haber preguntado su estado civil con anterioridad, el cuál tenemos guardado en la variable $estado_civil, para entonces poder evaluar luego su valor. Como se observa en el ejemplo, el bloque de código a ejecutar si la condición es verdadera debe ir encerrado entre {llaves}, y sólo si el código que queremos ejecutar consta de una sola línea podemos omitir las llaves; sin embargo, es recomendable nunca omitirlas para conservar la legibilidad del código. Nótese además que en el ejemplo hemos usado el operador == para comparar con un valor. if … else Es una ampliación de la sintaxis IF. Nos permite ejecutar un bloque de código si la condición es verdadera, y otro bloque diferente si es falsa. <?php $estado_civil= 'Soltero'; if ($estado_civil == 'Casado') { echo '¡Felicitaciones!'; } else { echo '¿Está buscando novia?'; } En este ejemplo podemos notar que las líneas en donde se encuentra el if y el else no terminan con un (, pues no representan una instrucción PHP propiamente dicha, sino un nodo que deriva el flujo de ejecución de código a un lado u otro dependiendo del resultado de la evaluación de la condición. if … elseif … else Es una versión un poco más avanzada del anterior en donde podemos tener dos o más condiciones que se ejecutan secuencialmente hasta que una es evaluada como VERDADERA, en cuyo caso se ejecuta el bloque correspondiente de código y finaliza la evaluación de las condiciones restantes. Si se incluye un bloque else al final, éste será ejecutado si ninguna de las condiciones anteriores es verdadera. <?php $estado_civil = 'Soltero'; if ($estado_civil == 'Casado') { echo '¡Felicitaciones!'; } elseif ($estado_civil == 'Viudo') { echo 'Sentimos mucho su pérdida…'; } elseif ($estado_civil == 'Conviviente') { echo 'Esperamos su pronto matrimonio…'; } else { echo '¿Está buscando novia?'; } Veamos otro ejemplo utilizando valores en las variables: <html> <body> <?php $numero = 115; if ($numero == 115) { echo '¡Felicitaciones usted ha ganado la lotería!'; } elseif ($numero >= 116) { echo 'Su ticket de lotería participa la otra semana'; } else { echo 'Lo sentimos, pero su número no ha salido ganador'; } ?> </body> </html> En este caso además del código del programa hemos incluido las etiquetas HTML lo cual se puede hacer con cualquiera de los ejemplos que hemos dado, y vemos cómo podemos desplegar un mensaje según en qué rango se encuentre un número que hemos definido anteriormente o que bien puede ser un valor resultado de una operación. switch Es otro tipo de condicional muy similar al IF … ELSEIF … ELSE. Su ventaja radica en que permite confrontar un valor patrón con una serie de valores. Cuando uno de los valores es igual (==) al valor patrón, se ejecuta el bloque de código correspondiente. Note que la sintaxis es algo diferente a la de los condicionales estándares IF, pero hace que el código se vea mucho más legible y ordenado. <html> <body> <?php $sistema_operativo = 'Mac OS X'; switch($sistema_operativo) { case 'Windows': // Podemos incluir comentarios echo "Su sistema lo inventó <strong>Bill Gates</strong><br />"; echo " y sirve mucho para jugar solitario."; break; //este comando sirve para finalizar el condicional case 'Linux': echo 'Su sistema fue creado a partir del código de Linus Torvalds.'; break; default: //cualquier otro valor no especificado en los case echo "Hay un mito con las computadoras creadas por Apple<br />"; echo "que dice que solo sirven para diseñar, pero no es cierto."; } ?> </body> </html> La palabra clave default desempeña el mismo rol que el ELSE, es decir, el bloque de código bajo esta palabra se ejecuta cuando la confrontación del valor patrón con los otros valores dio en todos FALSO. Además, es muy importante saber que cada bloque de código DEBE finalizar con la palabra clave break, como en el ejemplo. De ser omitida, la ejecución del código continua ignorando las condiciones siguientes, hasta que encuentra un break o termina el bloque switch. Manual de PHP: Bucles Contenido • 1 ¿Qué son los Bucles? • 2 Tipos de bucles o 2.1 while o 2.2 do … while o 2.3 for o 2.4 foreach ¿Qué son los Bucles? También llamados loops en inglés, nos permiten realizar tareas repetitivas durante un número específico de veces o mientras una condición se cumpla. Tipos de bucles while Ejecuta un bloque de código mientras una condición específica sea verdadera, por ello la verificación de dicha condición se hace desde un principio. $i = 1; while($i <= 5) { echo 'Número ' . $i . '<br>'; ++$i; // Esta instrucción hace que el valor de $i se incremente en 1 } En el ejemplo, primero definimos una variable $i asignándole el valor de 1, luego iniciamos el bucle diciendo que mientras $i contenga un valor menor o igual a 5 que ejecute lo que está entre llaves {}, osea desplegar un mensaje que diga Número más el valor de $i, y luego que le sume una unidad, lo que nos daría como resultado: Número 1 Número 2 Número 3 Número 4 Número 5 Cuando $i toma el valor de 6, la condición deja de cumplirse (es falso que 6 es menor o igual a 5). Por lo tanto, el bucle termina y se continúa con la ejecución de las instrucciones después del ciclo. do … while La diferencia con el anterior es que éste siempre va a ejecutar el código la primera vez, y luego recién hará la comprobación de la condición para determinar si continúa un nuevo ciclo o termina. $i = 1; do { ++$i; echo 'Número ' , $i , '<br />'; } while ($i <= 5); Resultado: Número 2 Número 3 Número 4 Número 5 Número 6 Explicación: como en un inicio colocamos el $i++ (le sumamos uno al valor de $i); el primer valor que muestra es Número 2 pero también pudimos haber colocado eso luego del echo para que mostrara del 1 al 5. for Su sintaxis es bastante corta y dentro de la misma línea se especifica la inicialización de la variable (que se ejecuta solo una vez), la condición a evaluar, y una operación a realizar. Estos "parámetros" deben escribirse en esa secuencia y separados por punto y coma ( uno de otro, pues constituyen cada uno instrucciones totalmente diferentes. En el siguiente ejempo entenderás mejor este concepto: for($i=0; $i<=100; ++$i) { echo 'Número ' . $i . '<br>'; } En este ejemplo el for le asigna un valor de 0 a $i (primera instrucción) y condiciona que, luego de incrementar en uno el valor de $i (tercera instrucción), se inicie un nuevo ciclo sí y sólo sí $i tiene un valor menor o igual a 100 (segunda instrucción). Para entender esto es importante que sepas el papel de cada una de estas instrucciones • La primera instrucción es ejecutada sólo una vez, al iniciar el ciclo for. Por eso se usa generalmente para asignar un valor a nuestra variable guía o bandera, que en este caso es $i. • La segunda instrucción se ejecuta siempre al iniciar un nuevo ciclo (No en el primer ciclo). Esta es evaluada para, según el valor booleano que devuelva, determinar si debe iniciarse un ciclo nuevo o si el bucle debe terminar. Por lo tanto, casi siempre se hace una comparación entre el valor de $i (la variable guía) y un valor estándar. • La tercera instrucción ejecuta una tarea adicional siempre al finalizar cada ciclo. Se le usa generalmente para modificar el valor de la variable guía, como por ejemplo, incrementar su valor. Ahora, sabiendo esto, vuelve a revisar el ejemplo anterior para que te des cuenta del proceso que se sigue al realizar este bucle. foreach Se utiliza para recorrer arreglos (arrays), que como vimos son conjuntos de información dentro de una variable. El ciclo foreach toma uno de los valores del array (con o sin su índice) y lo asigna a otras variables 'temporales' que especificamos, luego ejecuta un código, y al finalizar se mueve al siguiente elemento del array. Por lo tanto, vuelve a ejecutar el código tantas veces como valores tenga el arreglo. <?php $hermanos = array('Juan', 'Lucas', 'Carlos', 'Adolfo', 'Roberto'); foreach ($hermanos as $nombre) { echo $nombre . '<br />'; } Explicación: En la primera línea asignamos a una variable $hermanos un conjunto de datos organizados en un arreglo, usando array() y separando cada dato con comas. Luego, con el foreach lo que hace es crear un ciclo en base a los datos contenidos en nuestra variable, asignando en cada ciclo uno de los valores a la nueva variable $nombre. El foreach hace un recorrido desde el primer valor de $hermanos que en este caso sería Juan, le pasa ese valor a $nombre y entonces imprime la variable usando echo, luego vuelve a ejecutar el ciclo, pero ahora $nombre tiene el segundo valor de nuestro arreglo, que sería Lucas, y así sucesivamente hasta terminar con todos los elementos del arreglo. Resultado: Juan Lucas Carlos Adolfo Roberto Una extensión de este tipo de ciclo es que además puedes hacer el mismo proceso asigando también a otra variable el índice correspondiente a cada valor del arreglo. Miremos el siguiente ejemplo $frutas = array( 'a' => 'Plátano', 'b' => 'Piña', 'c' => 'Manzana', 'd' => 'Fresa', 'e' => 'Naranja' ); foreach($frutas as $letra => $fruta) { echo "La fruta '$letra' es '$fruta' <br>"; } El proceso es el mismo, sólo que ésta vez en la línea del foreach agregamos una variable adicional $letra que en cada ciclo tomará como valor el índice correspondiente a los valores respectivos, asignados a $fruta. La sintaxis básica de foreach, en resumen, es foreach($arreglo as $variable_indice => $variable_valor) { El código } Con el ejemplo anterior obtendríamos: La fruta 'a' es 'Plátano' La fruta 'b' es 'Piña' La fruta 'c' es 'Manzana' La fruta 'd' es 'Fresa' La fruta 'e' es 'Naranja' Manual de PHP: Ejercicios Prácticos La práctica hace al maestro así que veremos algunos otros ejemplos para que examines el código y veas lo que hacen, algunas cosas serán totalmente desconocidas pero luego explicaremos qué hace cada ejemplo. Contenido • 1 Variables de PHP • 2 Identificando el navegador • 3 Utilizando IF y las variables reservadas • 4 Utilizando funciones predefinidas

0
0
Manual PHP (TERCERA PARTE)
Manual PHP (TERCERA PARTE)
Apuntes Y MonografiasporAnónimo3/28/2011

Variables de PHP Este ejemplo te mostrará información acerca de la instalación de PHP en tu servidor o computadora, muchas veces es útil para saber qué módulos están activos o cuales no, así como para identificar los límites de memoria que tienen ciertas configuraciones que talvez te estén ocasionando problemas. <html> <body> <?php phpinfo(); ?> </body> </html> Identificando el navegador Además de las variables locales y globales existen las _variables reservadas_ también conocidas como globales, a éstas no se les puede asignar un valor, pues lo que contienen es información del servidor web o información del cliente que lo visita. El siguiente código nos muestra el tipo de navegador que estamos utilizando para ingresar. <html> <body> <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> </body> </html> Utilizando IF y las variables reservadas Ahora veamos un ejemplo combinando dos de los temas aprendidos en este tutorial, lo que haremos es evaluar si el navegador utilizado es Internet Explorer para entonces mostrar un mensaje. <html> <body> <?php if (strstr($_SERVER["HTTP_USER_AGENT"], 'MSIE')) { echo "Usted utiliza Internet Explorer<br />"; } ?> </body> </html> Como notarán, utilizamos una función llamada strstr al hacer el IF, lo que esto realiza es buscar una cadena de texto dentro de otra, en este caso la frase MSIE dentro del resultado de la variable $_SERVER y mostrarnos todo el texto que le sigue, otro ejemplo similar: <?php $nombre = 'Juan Carlos López Morales'; $extraer = strstr($nombre, 'Carlos'); echo $extraer; // Nos devolverá Carlos López Morales ?> A la variable $extraer le estamos indicando que busque el texto “Carlos “ dentro de $nombre, para que entonces nos devuelva Carlos más el resto del contenido. Utilizando funciones predefinidas PHP tiene una cantidad de funciones listas para usarse tal como vimos con strstr , veamos algunos otros ejemplos. <?php echo date("Y/m/d" . "<br />"; echo date("Y.m.d" . "<br />"; echo date("Y-m-d" ?> La función date() devuelve la fecha actual del servidor o computadora en donde estemos ejecutando el código y la puede mostrar en diferentes formatos, tal como el ejemplo anterior en donde Y = al año, m = al mes y d= día en valores numéricos. Manual de PHP: Funciones Contenido [ocultar] • 1 Funciones Básicas • 2 Funciones con Parámetros • 3 Funciones con dos o más Parámetros • 4 Funciones con Retorno de información • 5 Funciones con Retorno de múltiples valores PHP posee cientos de funciones prediseñadas tal como vimos algunas en módulos anteriores, pero nosotros también podemos crear funciones propias que ejecuten ciertas instrucciones cada vez que hagamos un llamado a ellas. Por ejemplo, podemos crear una función que haga un calculo matemático complejo cuando le enviemos dos valores, entonces en lugar de programar de nuevo ese cálculo en cada momento que lo necesitemos, solo lo hacemos una vez como una función, y luego hacemos un llamado cada vez que vayamos a necesitar de ese bloque de programación. Para declarar la función dentro de nuestros programas hacemos lo siguiente: function nombredeFuncion() { bloque de programación; } Veamos algunos ejemplos, desde los más sencillos para ir avanzando. Funciones Básicas <html> <body> <?php function sitioweb() { echo 'Foros del Web'; } echo 'Bienvenido a nuestro sitio llamado '; sitioweb(); ?> </body> </html> En éste primer ejemplo iniciamos nuestro bloque de programación creando nuestra primera función titulada sitioweb que tiene una impresión de pantalla por medio de echo , la función por si misma no hace nada hasta que la llamamos, aún teniendo el echo el mensaje no se desplegará sino hasta que escribimos sitioweb(); Funciones con Parámetros Para hacer las funciones mucho más útiles, podemos enviarles parámetros, es decir valores para que los utilice y realice algún cálculo u operación. <html> <body> <?php function suma($valor1) { $valor2=10; echo "El resultado es " . ($valor1+$valor2); } echo "Sumar 15 + 10: "; suma(15); ?> </body> </html> En este caso lo que hacemos es ingresar dentro de los paréntesis de suma() el valor de 15, allí estamos llamando a la función por lo que el programa ejecutará el código indicado arriba sumando el valor enviado más el valor de la variable $valor2 para mostrarnos el resultado. Conviene poner los paréntesis agrupando la operación. Funciones con dos o más Parámetros Similar al ejemplo anterior pero ahora enviando más parámetros dentro del paréntesis, como vemos debemos separar cada uno con una coma (,). Conviene poner los paréntesis agrupando la operación. <html> <body> <?php function suma($valor1,$valor2) { echo "El resultado es " . ($valor1+$valor2) ; } echo "Sumar 15 + 10: "; suma(15,10); ?> </body> </html> Funciones con Retorno de información En los ejemplos anteriores cada función imprime el resultado de la operación automáticamente, pero también podemos decirle que nos regrese ese resultado para que nosotros lo utilicemos en el espacio y momento que lo necesitemos. <?php function suma($valor1,$valor2) { $total=$valor1+$valor2; return $total; } echo "La suma de 15 + 10 es igual a " . suma(15,10); ?> Otro ejemplo: <?php function Cuadrado($numero) { return $numero * $numero; } echo Cuadrado(4); // igual a 16 ?> Funciones con Retorno de múltiples valores En el ejemplo anterior vemos que return nos devuelve el resultado de una operación o variable, pero en algunas ocasiones necesitamos más de un dato, para ello utilizamos un arreglo (array) y la función llamada list. function numeros() { return array (0, 1, 2); } list ($cero, $uno, $dos) = numeros(); En return array() tenemos tres valores los cuales luego podemos asignar cada uno a una variable distinta gracias a la función list, de esa forma $cero tendrá el primer valor, $uno tendrá 1 y $dos el último valor del arreglo. Manual de PHP: Utilizando Formularios para el envío de datos Contenido [ocultar] • 1 $_GET y $_POST • 2 Ejemplos de envío de información mediante GET • 3 Ejemplos de envío de información mediante POST Gran parte del trabajo que harán nuestros programas será procesar información que los usarios ingresen a través de formularios HTML, con esos datos podemos realizar operaciones en el momento o guardarlos a bases de datos por ejemplo. Vamos a ver cómo deben estar estructurados los formularios y luego explicaremos la conexión con nuestros programas en php, la base de un formulario es la siguiente: <form action="programa.php" method="post" id=”formulario”> Nombre: <input type="text" name="nombre" /> Edad: <input type="text" name="edad" /> <input type="submit" /> </form> En este ejemplo, la etiqueta <form> sirve para armar el formulario en HTML, dentro de ésta etiqueta estamos utilizando action para indicar que toda la información sea enviada al archivo llamado programa.php y por último method es para especificar de qué forma será enviada esa información para lo cual hay dos formas, GET y POST. $_GET y $_POST Cuando utilizamos $_GET dentro del php y el formulario, la información que enviamos será visible por cualquier persona pues es mostrada en la barra de direcciones, por lo que no debemos utilizar éste método para enviar contraseñas o información sensible. Una limitante de GET es que solo puede enviar hasta 100 caracteres. Comparado a $_POST, la información enviada por esta forma es invisible pues no se muestra cuando se envía y prácticamente no hay un límite en cuanto a tamaño se refiere. Es recomendable utilizar el segundo método cuando vamos a enviar información que por ejemplo va a ser almacenada en una base de datos y ya no va a ser modificada, o cuando vamos a enviar un formulario de contacto por ejemplo, y utilizamos GET cuando la información puede cambiar en algún momento, por ejemplo, si estamos buscando algo en Google puede ser que los resultados no son los que necesitemos entonces regresamos a la pantalla anterior para modificar la información. Ejemplos de envío de información mediante GET Realicemos el primer ejemplo creando un archivo llamado formulario.php con el siguiente contenido utilizando el método GET: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Formulario</title> </head> <body> <form action="programa.php" method="get" id=”formulario” name=”formulario”> Nombre: <input type="text" name="nombre" id="nombre" /> Edad: <input type="text" name="edad" id="edad" /> <input type="submit" value="enviar" name="enviar" id="enviar" /> </form> </body> </html> Y creamos un archivo llamado programa.php con lo siguiente <html> <body> Bienvenido <?php echo $_GET['nombre'];?>. <br /> Tu edad es: <?php echo $_GET['edad'];?> años. </body> </html> Ahora abrimos en el navegador formulario.html, ingresamos la información que se nos pide y veremos cómo nuestro programa procesa los datos. A simple vista podemos entender bastante bien cómo funciona, como vemos al utilizar $_GET['nombre']; lo que hacemos es capturar el campo llamado nombre del formulario: <input type="text" name="nombre" id="nombre" /> Y lo mostramos utilizando echo tal como aprendimos a imprimir en pantalla las variables. • o  Captura de pantalla* En el ejemplo anterior la barra de direcciones luciría de la siguiente forma: http://localhost/programa.php?nombre=Juan&age=25 Ejemplos de envío de información mediante POST Ahora veamos cómo funciona POST, en donde al enviar la información la barra de direcciones quedaría como http://localhost/programa.php Crear un archivo llamado formulario.html <html> <body> <form action="archivo.php" method="post" id=”formulario”> Nombre: <input type="text" name="nombre" /> Edad: <input type="text" name="edad" /> <input type="submit" /> </form> </body> </html> Y otro llamado programa.php: <html> <body> Bienvenido <?php echo $_POST["nombre"]; ?>,<br /> Tu edad es: <?php echo $_POST["edad"]; ?> años. </body> </html> Como vemos cuando en el formulario utilizamos method=”get” en la programación también debemos utiliza $_GET, igual para post, sin embargo también existe $_REQUEST que puede obtener la información de los formularios sin importar qué metodo se utiliza, ejemplo: Bienvenido <?php echo $_REQUEST["nombre"]; ?>,<br /> Tu edad es: <?php echo $_REQUEST["edad"]; ?> años. <input type="text" name="nombre" id="nombre" /> Y lo mostramos utilizando echo tal como aprendimos a imprimir en pantalla las variables. En el ejemplo anterior la barra de direcciones luciría de la siguiente forma: http://localhost/programa.php?nombre=Juan&age=25 Manual de PHP: Tipos de control para los formularios Contenido [ocultar] • 1 Inputs • 2 Radio • 3 Checkbox • 4 Textarea Un formulario puede tener diversos tipos de datos para la recolección de información, vamos a ver algunos de ellos junto a una breve explicación, te recomiendo irlos probando dentro de un documento .html para que veas cómo funcionan. Inputs Son campos regularmente para el ingreso de texto, son los que vemos en los formularios de contacto para ingresar nombre, correo electrónico, etc. Sintaxis: <form> <label for="nombre_campo">Texto</label> <input id="nombre_campo" type="text" name="nombre" value="texto_default" /> </form> La primera línea label sirve para identificar el nombre del campo que le sigue, es además la etiqueta que aparece para que el usuario sepa qué dato se le está pidiendo que llene aunque no es necesario encerrarlo en una etiqueta label. Otra variante de este Input es el de tipo password que hace que el texto que se escribe en el sea reemplazado por símbolos como protección: <input id="contraseña" type="password" name="contraseña" value=""" /> Y también podemos ocultar éstos campos de texto colocándole el type=hidden lo cual nos sirve para enviar alguna información ya predefinida junto a todo lo que el usuario ingrese. <input type="hidden" name="contador" value="350″ /> El último tipo de input que veremos es el submit que es el botón que regularmente hacemos click para poder enviar un formulario con la información que llenamos. <form name="input" action="programa.php" method="get"> Nombre: <input type="text" name="nombre" /> <input type="submit" value="Enviar" /> </form> Radio Los controles de tipo Radio son los que vemos que tienen una forma redonda y se pueden utilizar para preguntar opciones de tipo falso/verdadero, masculino/femenino, etc y en donde solo puede estar seleccionada una de las opciones: <form> <label for="nombre_input">Masculino</label> <input type="radio" name="sexo" value="masculino" checked="checked"/> <label for="nombre_input">Femenino</label> <input type="radio" name="sexo" value="femenino" /> </form> Checked nos sirve para indicar que queremos que ese campo aparezca seleccionado desde un inicio. Checkbox Estos controles son usados cuando se necesita que se pueda seleccionar una o más opciones de las que se presentan, o también cuando solo se presenta una opción y necesitamos que el usuario la marque por ejemplo para poder continuar con algún proceso. <form> Mac OS <input type="checkbox" name="sistema" value="mac" checked="checked"/> <br /> Windows <input type="checkbox" name="sistema" value="windows" /> <br /> Apple <input type="checkbox" name="sistema" value="linux" /> </form> El campo value puede contener también números, Textarea A diferencia del primer input que vimos, los textarea son campos grandes para ingreso de texto multilínea en donde podemos especificar la cantidad de éstas y de columnas que queramos. <form> <textarea id="comentario" name="comentario" rows="10" cols="30"> texto default si deseamos </textarea> </form> Manual de PHP: Bases de Datos Contenido [ocultar] • 1 Introducción a las bases de datos • 2 El lenguaje SQL • 3 Gestores de bases de datos Introducción a las bases de datos Como ya vimos en los tutoriales básicos, una de las ventajas de PHP es que, al ser un lenguaje interpretado por el servidor, permite generar páginas HTML dinámicas, es decir, que van cambiando su contenido en base a distintas situaciones. El ejemplo clásico es mostrar un mensaje de bienvenida a los usuarios registrados de nuestro sitio, y uno distinto a aquellos visitantes no registrados. Es decir, hemos personalizado el contenido mostrado antes de enviárselo al usuario como HTML. Habiendo recordado este punto muy importante, entenderemos fácilmente la función de las bases de datos. En términos simples, constituyen un sistema de almacenamiento organizado de datos, en los cuales se pueden ingresar nuevos datos, modificar los ya existentes, leerlos y procesarlos, o incluso eliminarlos. Cabe señalar que aquí nos vamos a referir al modelo de bases de datos relacional, puesto que existen muchos modelos distintos de bases de datos. En general, vamos a ver que una base de datos relacional está formada por múltiples tablas, y cada tabla de una serie de datos o registros. • Las tablas son los contenedores de información. En nuestra base de datos podremos tener múltiples tablas, cada una destinada a un fin específico. En una guardaremos los datos de los usuarios registrados en nuestro sitio, en otra pondremos los mensajes de visita, y en otra las noticias. Podemos crear tantas tablas como necesitemos para el sistema que queremos crear. • Cada tabla está formada por una serie de columnas, llamadas usualmente campos o atributos. Éstas van a contener un determinado tipo de datos, como números o texto, y van a estar representadas por un nombre único que las va a identificar. Por ejemplo, si queremos tener un sistema de comentarios en nuestro sitio, tendremos una tabla llamada comentarios, y en ella múltiples columnas, como nombre, fecha, ip, email y comentario. Una práctica estándar muy recomendada es tener siempre una columna índice que va a identificar cada registro en nuestra tabla. Por lo tanto, a nuestros campos añadiremos uno llamado id. • Una fila es un registro de datos. Podemos tener tantas filas en nuestra tabla como capacidad tenga nuestro servidor. Siguiendo el ejemplo anterior, cada nuevo comentario que deje un usuario será almacenado en nuestra tabla destinada a ello, junto con los otros datos como su nombre, fecha, etc. Este conjunto de datos que vamos a insertar en la tabla constituye un registro o una fila dentro de ella. Un ejemplo de tabla en una base de datos relacional: El lenguaje SQL Una base de datos es un sistema que dispone de su propio lenguaje, muy diferente al lenguaje PHP. Hay muchos lenguajes en función de la base de datos, pero el que vamos a utilizar es el conocido lenguaje SQL, este está formado por una serie de instrucciones, las cuáles van a modificar, agregar o eliminar los datos almacenados en la base de datos. No es el objetivo de este tutorial profundizar en este lenguaje. Para poder interactuar con la base de datos PHP dispone de una serie de funciones, las cuáles permiten tres tipos de operaciones básicamente: • Abrir/cerrar conexiones con los servidores de bases de datos • Ejecutar consultas SQL • Trabajar sobre el resultado de dichas consultas Gestores de bases de datos Los Sistemas Gestores de Bases de Datos (SGBD), son los encargados de facilitarnos la creación y manipulación de las bases de datos. Existen un gran número de gestores de bases de datos, y PHP dispone de herramientas para integrar y relacionar sistemas con muchos de ellos. Nosotros utilitzaremos, evidentemente, los de bases de datos relacionales, y entre los más conocidos destacan: • MySQL • Manual de PHP & MySQL • PostgreSQL • Oracle • ODBC En todas ellas se usa el lenguaje SQL. La más usada y conocida es MySQL, pero PHP puede también interactuar con las demás. Cabe destacar que, pese a que conozcamos el lenguaje SQL y estos SGBD estén basados en él, puede que algunas instrucciones determinadas no funcionen en algunos de éstos. Esto es porque en realidad estos gestores pueden haber redefinido en mayor o menor medida el lenguaje para lograr el objetivo para el que fueron diseñados. Sin embargo, esto sólo suele ocurrir en las instrucciones más avanzadas, en cuyo caso si recibimos un error de sintaxis deberíamos recurrir al manual para comprobar cuál es la instrucción adecuada para nuestro propósito. Manual de PHP: MySQL De Foros del Web Saltar a navegación, buscar Contenido [ocultar] • 1 Videotutorial • 2 Conectar y desconectar al servidor • 3 Seleccionar la base de datos • 4 Realizar consultas • 5 Procedimientos más comunes o 5.1 SELECT: Obtener los datos  5.1.1 Leer los datos devueltos  5.1.2 Calcular el número de filas  5.1.3 Obtener un dato específico  5.1.4 Liberando la memoria o 5.2 INSERT: Insertar datos o 5.3 UPDATE: Modificar registros o 5.4 DELETE: Borrar registros Como mencionamos al hablar de bases de datos, MySQL es el gestor de bases de datos más difundido y quizás el más usado. PHP dispone de un amplio grupo de funciones para interactuar con este motor, haciendo que el manejo de la información almacenada en la base de datos desde un script PHP sea muy fácil. Ya mencionamos que para poder enviarle instrucciones al servidor MySQL tenemos que hacerlo en su propio lenguaje, el lenguaje SQL. Conforme vayamos desarrollando cada sección iremos viendo la sintaxis básica de las sentencias SQL más usadas. Videotutorial A continuación puedes ver un video con un ejemplo de como conectarse a una base de datos de mySQL y extraer información, el video está basado en los ejemplos y la documentación que leerás en esta misma página. Conectar y desconectar al servidor Antes de ejecutar cualquier consulta SQL debemos primero abrir una conexión con el servidor MySQL. Para ello disponemos de la función mysql_connect(). Para abrir una conexión debemos contar con la dirección del servidor MySQL (proporcionada por el proveedor de hosting, o en su defecto localhost), un nombre de usuario y una contraseña, los cuáles pasaremos como parámetros a esta función. $servidor = 'localhost'; $usuario = 'root'; $clave = 'abcdef'; mysql_connect($servidor, $usuario, $clave); Luego de hacer esto tendremos una conexión abierta con nuestro servidor MySQL, y podemos ahora trabajar sobre ella. Ocasionalmente necesitaremos conectarnos a dos o más servidores simultáneamente (de hecho son casos muy excepcionales). Para poder lograrlo debemos trabajar también con recursos de conexión. Un recurso es, en términos simples, una variable que lleva consigo la llave de determinado proceso. La función mysql_connect() genera un recurso de conexión, llamado identificador de enlace, que lleva consigo la conexión abierta con el servidor MySQL. Podemos usar ese recurso para hacer referencia a esa conexión de forma específica. Para obtenerlo basta con asignar la función vista a una variable que se convertirá en el recurso para esa conexión: $conexion = mysql_connect($servidor, $usuario, $clave); Como casi nunca tendremos que abrir varias conexiones simultáneas, no tocaremos más el tema de los identificadores de enlace. Sólo tienes que saber que están ahí. También disponemos de mysql_close(), una función destinada a cortar la conexión abierta con el servidor MySQL. Antiguamente se sugería siempre cerrar la conexión con el servidor MySQL al terminar de ejecutar todas las consultas SQL, argumentando que se liberaba la memoria usada por ésta en el servidor; pero ahora se sugiere dejarla abierta, ya que al terminar la ejecución del script todas las conexiones abiertas son cerradas automáticamente; además, si por alguna razón se necesita volver a consultar a la base de datos tendremos que abrir nuevamente la conexión, y eso sí genera una carga totalmente innecesaria al servidor. Por lo tanto, el uso de mysql_close() debe quedar reservado exclusivamente para aquellos casos en los que se requiera procesar una gran cantidad de información tras ejecutar las consultas SQL. En general, nunca cerraremos la conexión con el servidor MySQL; bastará con indicar entonces que para hacerlo basta con llamar a esa función: mysql_close(); Seleccionar la base de datos Una vez que tenems abierta la conexión con el servidor MySQL debemos seleccionar nuestra base de datos. Aclaremos que el servidor MySQL no es lo mismo que la base de datos. Un servidor contiene numerosas bases de datos, nosotros podemos crear nuevas bases de datos o borrar alguna del servidor. Por lo tanto, es imprescindible indicarle al script y al servidor sobre qué base de datos vamos a trabajar. Para realizarlo, usamos la función mysql_select_db(), a la cuál pasaremos como parámetro el nombre de nuestra base de datos. mysql_select_db('base_de_datos'); Una vez seleccionada la base de datos, podemos empezar a ejecutar consultas SQL. Realizar consultas Como ya hemos venido diciendo, las consultas SQL, o también conocidas por su nombre en inglés como queries, son instrucciones que le enviamos al servidor MySQL para que ejecute determinada tarea. Una consulta, en términos prácticos, no es más que una cadena de texto. Para ejecutar la consulta debemos usar la función mysql_query() pasándole como parámetro la cadena de texto que contiene la consulta SQL. Al llamarla así, estaremos haciendo una consulta a la base de datos. Al igual que mysql_connect(), esta función también crea un recurso, el cuál no será útil después paratrabajar en base a la consulta que hemos realizado. Veamos un ejemplo de todo lo visto hasta ahora: mysql_connect('localhost', 'admin', ''); mysql_select_db('mi_base_de_datos'); $query = mysql_query('SELECT * FROM tabla'); Al realizar la consulta, tenemos el recurso $query que podremos usar luego para leer los datos devueltos por la consulta o trabajar sobre ella. NOTA: es muy frecuente ver que muchos intentan usar el recurso devuelto por mysql_query() como si fuese el resultado en sí de la consulta. Debemos aclarar que por sí sólo este recurso no representa nada, no se puede imprimir ni se puede emplear directamente, sino a través de otras funciones que veremos en las siguientes secciones. Procedimientos más comunes En esta sección vamos a revisar las tareas más frecuentemente usadas al trabajar con bases de datos. Para hacerlo, pensemos que tenemos una base de datos llamada "principal" y una tabla en ella llamada "comentarios" que tiene la siguiente estructura: * id → almacena el identificador de cada registro, es un campo autoincrementable, esto quiere decir que para cada registro el valor de este campo se incrementa en 1. * nombre → el nombre de la persona que envía el comentario * email → la dirección de correo de la persona que envía el comentario * comentario → el comentario del usuario * estado → el estado actual del comentario (publicado, eliminado o spam) No profundizaremos en el código SQL usado para crear la bases de datos o esa tabla en ella, pues no es algo que vayamos a realizar rutinariamente en nuestros scripts. Además existen aplicaciones como PHPMyAdmin que van a facilitar estas tareas. Basta con indicar que las consultas SQL son estas: Crear la base de datos CREATE DATABASE 'principal'; Crear la tabla comentarios CREATE TABLE `comentarios` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `nombre` CHAR( 75 ) NOT NULL , `email` CHAR( 75 ) NOT NULL , `comentario` LONGTEXT NOT NULL , `estado` CHAR( 20 ) NOT NULL ) Si realmente deseas profundizar en el tema del lenguaje SQL puedes leer el manual de SQL en Maestros del Web. Vamos a revisar los procedimientos más comunes al hablar de bases de datos, los cuáles son: • SELECT: Obtener los datos existentes • INSERT: Insertar nuevos datos • UPDATE: Actualizar los datos existentes • DELETE: Eliminar datos existentes SELECT: Obtener los datos La primera tarea que vamos a ver es la extracción de datos de una base de datos. La sentencia SQL que usaremos es SELECT. Nos permite seleccionar los datos de una tabla específica en nuestra base de datos. La sintaxis básica de una consulta tipo SELECT es: SELECT campo1, campo2, ... FROM tabla Veamos un ejemplo sencillo: // La consulta SQL $sql = "SELECT nombre, email FROM comentarios"; $query = mysql_query($sql); Con esta consulta le estamos pidiendo al servidor MySQL que nos envíe el nombre y email de todos los registros en la tabla comentarios. Si quisiéramos todos los datos, en vez de colocar uno a uno los nombres de los campos podemos usar un asterisco (*) para hacer referencia a todas las columnas de la tabla. Podemos hacer la consulta un poco más específica, para ello hacemos uso de las claúsulas disponibles para esta sentencia. Una claúsula actúa igual que un parámetro para los tags HTML. Veamos las más comunes: • WHERE: Actúa como un filtro en la consulta SQL, haciendo que ésta devuelva sólo los campos que cumplan con los criterios allí establecidos (WHERE campo1 = 'valor1' AND campo2 = 'valor2'). Lo más común es hacer comparaciones, donde comparamos el valor de un campo con un valor guía. • LIMIT: Define cuántos registros queremos que nos devuelva la consulta SQL y desde dónde debe empezar a extraer (LIMIT registro_inicial, número_de_registros). El primer registro en nuestro resultado va a ser el registro cero (0), por lo que si queremos extraer 3 registros a partir del segundo deberemos poner LIMIT 1, 3 • ORDER BY: Ordena los resultados en base a una columna (ORDER BY campo ASC/DESC). Por ejemplo, si queremos ordenar en orden alfabético (ascendente) en base al campo nombre, pondremos ORDER BY nombre ASC Veamos la nueva consulta, pero esta vez más específica: // La consulta SQL $sql = "SELECT * FROM comentarios WHERE estado = 'spam' ORDER BY id DESC LIMIT 0, 3"; $query = mysql_query($sql); Si despedazamos la consulta, veremos que le estamos pidiendo al servidor MySQL que nos devuelva todos los campos (SELECT *) de los registros de la tabla 'comentarios' (FROM comentarios) cuyo estado es 'spam' (WHERE estado = 'spam'), pero ordenándolos en orden descendente en base al valor del campo 'id' (ORDER BY id DESC) y que sólo nos dé 3 registros empezando por el primero (LIMIT 0, 3). Hecha la consulta hemos obtenido un recurso, y lo hemos guardado en la variable $query. Ahora podemos trabajar sobre esa consulta haciendo referencia a esa variable. Leer los datos devueltos Como dijimos anteriormente, un recurso no puede ser usado directamente para imprimir los resultados, sino que debe asociarse a una función según lo que queremos realizar. Empezaremos explicando cómo leer los registros que coincidieron con nuestra consulta. Para hacer ello, PHP tiene la función mysql_fetch_assoc(), la cuál genera un arreglo que contiene como índices los nombres de los campos (array asociativo), cada uno con su valor correspondiente, para cada registro que devolvió nuestra consulta. En cada llamada a esta función se devuelve un fila o registro, por lo que, para leer todos los registros debemos llamar la función tantas veces como filas haya devuelto nuestra consulta. Es por ello que, para leer las filas de una consulta SQL, se usa generalmente un ciclo while, basándonos en el principio de que, al terminar de leer todas las filas y volver a llamar a la función mysql_fetch_assoc(), ésta devolverá false, lo cuál determiará el fin del ciclo. Existen otras funciones similares, como mysql_fetch_row(), que devuelve los datos con índices numéricos (array numérico); mysql_fetch_array(), que devuelve un array que es a la vez asociativo y numérico (array mixto); y mysql_fetch_object(), que devuelve un objeto en vez de un array. En el ejemplo anterior habíamos hecho la consulta SQL y ya teníamos el recurso $query para trabajar sobre esa consulta. Ahora veamos el código con el cuál recogemos las filas: while($fila = mysql_fetch_assoc($query)) { echo 'El comentario #' . $fila['id'] . ' escrito por ' . $fila['nombre'] . ' ( ' . $fila['email'] . ') es spam<br>'; } Si te fijas en el ejemplo, en cada ciclo creamos un array $fila que contiene los datos de la fila correspondiente a ese ciclo. Como estamos usando mysql_fetch_assoc(), obtenemos un array asociativo, esto quiere decir que los índices del array son los nombres de los campos de la tabla en la base de datos. Usando la tabla que especificamos al inicio, con esta consulta obtendremos lo siguiente: El comentario #9 escrito por Brenda ([email protected]) es spam El comentario #6 escrito por María ([email protected]) es spam El comentario #5 escrito por Miguel ([email protected]) es spam Es importante que notes que, en la condición del while no hacemos una comparación (== ó ===), sino una asignación (=). En la práctica, la asignación $variable = false devuelve en su conjunto false, y como ya mencionamos, al llegar al final de los resultados la función mysql_fetch_assoc() devuelve false. Por eso es que el ciclo funciona. Calcular el número de filas Muchas veces queremos saber cuántas filas ha devuelto nuestra consulta. Para hacerlo tenemos a nuestra disposición la función mysql_num_rows(), que nos dirá este valor: . $total = mysql_num_rows($query); if($total == 0) { echo 'La consulta no devolvió ningún resultado'; } else { echo 'La consulta devolvió ' . $total . '$filas'; // Podemos mostrar aqui los resultados (while...) } Obtener un dato específico Mencionemos también que podemos obtener el dato de un campo dentro de un registro o fila específico. Para eso usamos la función mysql_result(). La sintaxis básica es: mysql_result(recurso, fila, campo); El recurso es el resultado devuelto por la llamada a mysql_query(), la fila es el número de fila que queremos extraer (Recordemos que la primera fila es cero!), y como parámetro opcional campo debemos indicar el nombre o número del campo deseado si en nuestra consulta solicitamos más de una columna. Veamos algunos ejemplos tomando como base el ejemplo anterior: echo mysql_result($query, 0, 'nombre'); // Imprime: Brenda echo mysql_result($query, 1, 'email'); // Imprime: [email protected] echo mysql_result($query, 2); // Imprime: 5 (No escribir el campo hace que se tome el valor del primer campo, en este caso id) echo mysql_result($query, 0, 2); // Imprime: [email protected] (El campo #2 es 'email' {tercer campo}) Liberando la memoria Podemos usar mysql_free_result() para liberar la memoria usada por la consulta SELECT actual. Sin embargo, no es necesario hacerlo a menos que estemos trabajando con un montón muy grande (demasiado grande) de datos. mysql_free_result($query) INSERT: Insertar datos Para insertar datos podemos usar la sentencia INSERT. Esta sentencia tiene dos sintaxis básicas, de las cuáles la primera es la más usada y conocida: INSERT INTO tabla (campo1, campo2, ...) VALUES ('valor1', 'valor2', ...) INSERT INTO tabla SET campo1 = 'valor1', campo2 = 'valor2', ... El siguiente ejemplo muestra cómo podríamos insertar nuevos datos a nuestra tabla de ejemplo: $sql = "INSERT INTO comentarios (nombre, email, comentario, estado) VALUES ('Álex', '[email protected]', 'Comentario de Álex', 'publicado')"; mysql_query($sql); A diferencia de la sentencia SELECT, mysql_query() no retornará un recurso cuando se ejecuta una sentencia INSERT. En su lugar retornará el valor booleano true si la consulta se ejecutó con éxito, y false en el caso contrario. Es posible agregar varias filas usando la misma consulta, sólo hay que separar los grupos VALUES con comas, de la siguiente forma: $sql = "INSERT INTO comentarios (nombre, email, comentario, estado) VALUES ('Johanny', '[email protected]', 'Comentario de Johanny', 'publicado'), ('Mayra', '[email protected]', 'Comentario de Mayra', 'publicado'), ('Xiomara', '[email protected]', 'Comentario de Xiomara', 'publicado') "; mysql_query($sql); Podemos usar, adicionalmente, la función mysql_affected_rows() para saber cuántas filas se insertaron tras la ejecución de la consulta: echo 'Se insertó ' . mysql_affected_rows() . ' nuevos registros'; Por último, podemos omitir el especificar los nombres de los campos de la tabla a la cuál queremos insertar los datos, pero en los grupos VALUES tendremos que implícitamente hacer referencia a ellos. Vale decir, el primer valor irá al primer campo, el segundo irá al segundo campo, y así sucesivamente: $sql = "INSERT INTO comentarios VALUES (NULL, 'Patty', '[email protected]', 'Comentario de Patty', 'publicado')"; mysql_query($sql); Nota que el valor NULL corresponde al campo id, y le asignamos un valor nulo porque al ser un campo auto_increment su valor va aumentando automáticamente al crear nuevos registros. UPDATE: Modificar registros Para actualizar registros en la base de datos hacemos uso de la sentencia UPDATE. Su sintaxis básica es: UPDATE tabla SET campo1 = 'valor1', campo2 = 'valor2', ... WHERE campoA = 'valorA' AND campoB = 'valorB' AND ... En este caso definimos una claúsula WHERE para indicarle al servidor qué filas son las que deseamos modificar. Puede ser una única fila, o múltiples filas, siempre que cumplan con los criterios establecidos. $sql = "UPDATE comentarios SET comentario = 'Este comentario ha sido marcado como spam' WHERE estado = 'spam'"; mysql_query($sql); En este ejemplo vamos a modificar el valor del campo comentario de nuestra tabla para todos los registros cuyo campo estado tenga como valor spam, y les vamos a asignar el valor textual 'Este comentario ha sido marcado como spam'. Al iguul que en el caso de INSERT, la función mysql_query() no retorna un recurso, sino un valor booleano. Y también aquí podemos usar la función mysql_affected_rows() para obtener el número de filas modificadas por la consulta. En nuestro ejemplo: echo 'Se han modificado ' . mysql_affected_rows() . ' filas'; Y en este caso nos diría que se han modificado 3 (las 3 que tienen como estado spam). DELETE: Borrar registros Finalmente, la última sentencia que vamos a ver es la sentencia DELETE. Su sintaxis es: DELETE FROM tabla WHERE campo1 = 'valor1' AND campo2 = 'valor2' AND ... Y también aquí podemos usar la función mysql_affected_rows() para determinar el número de filas eliminadas de la tabla con la ejecución de la consulta. Ejemplo: $sql = "DELETE FROM comentarios WHERE estado = 'eliminado'"; mysql_query($sql); echo 'Se han eliminado ' . mysql_affected_rows() . ' registros'; Con este ejemplo, estamos eliminando de la tabla comentarios todas las filas cuyo campo estado tenga el valor de eliminado, que en total son 3 filas. Como has visto a lo largo de este manual, desde PHP podemos controlar todos los datos existentes en nuestra base de datos. Usando formularios y tomando los datos introducidos podemos crear muchas aplicaciones dinámicas, como blogs, sistemas de comentarios, o sistemas de noticias. Las 4 sentencias vistas son las sentencias básicas del lenguaje SQL, pero hay muchas más que hacen más sencillo todavía el trabajar con bases de datos. Te invito a que investigues y leas un poco sobre todas ellas. PHP: Instrucciones para agregar una pregunta al FAQ de PHP En este pequeño tutorial van los pasos para incluir registros de las FAQ's de forosdelweb.com en este WIKI. 1. Iniciar sesión en el wiki (Para editar en el wiki es necesario ingresar con nombre y usuario de forosdelweb.com) 2. Agregamos una nueva página al Wiki. Para ello, solo hace falta escribir la pregunta como parte del URL en nuestro navegador. Por ejemplo: http://www.forosdelweb.com/wiki/PHP: Titulo de la nueva pregunta Esto nos llevará a la generación de un nuevo registro del Wiki. Nótese que hemos utilizado "PHP:" para organizar el conjunto de preguntas bajo el tema PHP. 3. Llegaremos a un registro no existente con la siguiente leyenda: En este momento no hay texto en esta página, puedes buscar por el título de esta página en otras páginas o editar esta página.. Allí debemos ir a la opción de editar en la parte superior. 4. El título ya quedará registrado y solo hace falta incluir la información de la pregunta y respuesta. En caso de que incluyamos código, favor de incluirlo con los tags de <php> < /php> lo que resaltará y coloreará el código. 5. Para incluir el crédito de forma vistosa, podemos firmar la entrada con nuestro nombre de usuario y la fecha: ---- -- [http://www.forosdelweb.com/miembros/usuario/ Usuario] 12 Feb 2009 6. También debemos asegurarnos de incluir las categorías de PHP, FAQs y la plantilla del pie de página: [[CategoryHP]] [[CategoryAQ]] 7. El último paso consiste en incluir la pregunta en el índice del FAQ de PHP. Para ello podemos editar esta página e incluirla dentro de la categoría correspondiente. Manual de PHP: Cookies Las Cookies o Galletas son pequeños archivos que se guardan en la computadora del usuario o visitante de un sitio en donde se almacena o lee información del navegador para poder identificarlo. En PHP se pueden crear cookies mediante la función setcookie() Los valores almacenados en las cookies se convertirán automáticamente en variables que luego podremos leer y a las cuales podemos asignar distintos valores en nuestro programa. Sintaxis y Ejemplos • Para asignar un valor a una cookie utilizamos el siguiente código . setcookie("nombre",valor,expiración); Nota: Para asignar valores a una cookie, no se deben haber enviado ninguna cabecera previamente. • Generando una Cookie que funcione en www.dominio.com / dominio.com / sub.dominio.com <?php //observad la "/" que sirve para llamar directamente al nombre de dominio //y no a una subcarpeta. Si no lo pusiéramos la cookie se llamaría: //midominio.com.midominio.com. //el "0" sirve para indicar si es 1 solo se envia la cookie por HTTPS, si es 0 por HTTP y HTTPS setcookie("micookie", "valor", time()+10000, "/", ".midominio.com", 0); ?> Argumentos en una Cookie • Name (Nombre) • Value (Valor) • Expire (Tiempo de Expiración) • Path (Ruta) • Domain (Dominio) • Secure (https) Leyendo valores almacenados en una cookie Para poder leer un valor que esté dentro de una cookie utilizamos $_COOKIE $_COOKIE["nombre"]; Manual de PHP: Sesiones Cuando un usuario visita una aplicación o sitio Web programado en PHP regularmente navega en distintas partes y páginas del sitio las cuales pueden tener relación entre ellas, por ejemplo si tenemos una tienda en línea queremos saber cuando un usuario ingresa, naevga por los productos y al final se registra y agrega productos al carrito de compras. El reto es identificar a ese usuario como único en toda la aplicación y verificar en cada página que visita qué privilegios tiene o qué configuraciones ha modificado para presentarle la información correcta, para esto utilizamos lo que se llaman Sesiones (Sessions). Contenido [ocultar] • 1 Cómo funcionan las sesiones • 2 Duración de las sesiones • 3 Funciones para el manejo de sesiones • 4 Ejemplos Cómo funcionan las sesiones Y sabemos que con PHP podemos enviar variables a través de las URLs tal como hemos visto en los formularios, pero tendríamos que estar enviando esta información constantemente a través de todas las URLs o páginas que visite el usuario, y por otro lado también podemos leer y almacenardatos en las cookies sin embargo el soporte de éstas no está activada en todos los navegadores o algunos usuarios las desactivan, por eso utilizamos las Sesiones. Lo que hacemos es asignar un identificador único a cada usuario que nos visita y guardar ciertos valores que vamos a utilizar durante toda su visita para acceder a ellos en cualquier momento que los necesitemos sin necesidad de estar declarándolos en cada página que ingrese. Duración de las sesiones Las sesiones se inician o abren cuando un usuario visita un sitio, permanece activa durante toda esa visita y se cierra al cerrar la ventana o pestaña del navegador con dicho sitio. Funciones para el manejo de sesiones • session_start — Inicializar los datos de una sesión • session_destroy — Destruye todos los datos guardados en una sesión • session_register(nombre) — Registrar una o más variables globales con la sesión actual • session_unregister(nombre) — Desregistrar una variable de la sesión actual • session_is_registered(nombre) — Comprueba si una variable está registrada en la sesión • session_cache_expire — Devuelve la caducidad actual del caché • session_cache_limiter — Lee y/o cambia el limitador del caché actual • session_commit — Alias of session_write_close • session_decode — Decodifica los datos de una sesión a partir de una cadena • session_encode — Codifica los datos de la sesión actual en una cadena • session_get_cookie_params — Obtiene los parámetros de la cookie de la sesión • session_id — Lee y/o cambia el session id actual • session_is_registered — Comprueba si una variable está registrada en la sesión • session_module_name — Lee y/o cambia el módulo de la sesión actual • session_name — Lee y/o cambia el nombre de la sesión actual • session_regenerate_id — Actualizar el id de sesión actual con una recién generada • session_save_path — Lee y/o cambia la ruta donde se guardan los datos de la sesión actual • session_set_cookie_params — Cambia los parámetros de la cookie de la sesión • session_set_save_handler — Establece unas funciones para el almacenamiento de los datos de la sesión a nivel de usuario • session_unset — Elimina todas las variables de la sesión • session_write_close — Escribe los datos de la sesión y la finaliza Ejemplos • Cómo Guardar y leer variables en una sesión • Código de ejemplo para autenticarse en un sitio utilizando Sesiones en PHP Manual de PHP: Subiendo archivos al servidor con PHP PHP tiene un par de funciones muy simples para que un visitante, pueda mandarnos un archivo desde su computadora, y nosotros podamos guardarlo en el servidor, en el lugar y con el nombre que queramos. Para eso, crearemos 2 archivos, uno será un formulario HTML, donde el usuario tendrá el campo para poder subir el archivo, y otro archivo, PHP, que tomara ese archivo y lo colocara en nuestro servidor. Entonces, los archivos serán: Formulario_Subida.html <HTML> <HEAD> <TITLE> YO SUBO EL ARCHIVO </TITLE> </HEAD> <BODY> <FORM action="GuardarArchivo.php" method="POST" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="5120"> Subir este archivo: <br><br> <input name="userfile" type="file"><br><br><br> <input type="submit" value="Subir"> </FORM> </BODY> </HTML> En este archivo solo tenemos 3 cosas para destacar: La primera, es que si se va a utilizar un campo de subida de archivos, el Form debe tener el método enctype con el valor multipart/form-data. Esto es necesario par que funcione. La segunda es el <TAG> de tipo hidden con el nombre “MAX_FILE_SIZE” que le dice al navegador el tamaño máximo del archivo a subir. Este método de control no es muy seguro ya que se puede saltear, y además depende del navegador si es tomado en cuenta o no. La tercera es el <TAG> de tipo “file”, el cual me muestra el campo con el botón examinar, para poder seleccionar el archivo a subir. Este campo no tiene por defecto, una forma de mejorar su aspecto, o el nombre del botón. Pero se puede lograr usando CSS. Guardar_Archivo.php <? $nombre = $_FILES['userfile']['name']; //nombre con el que lo subió el usuario $tipo = $_FILES['userfile']['type']; //tipo de archivo (jpg,gif,rar,txt,etc) $tamano = $_FILES['userfile']['size']; //tamaño del archivo en Kb; 1024Kb = 1Mb $error = $_FILES['userfile']['error']; //si apareció algún error en la subida $nombre_temporal = $_FILES['userfile']['tmp_name']; //Nombre temporal que se le asigna al archivo cuando sube a tu servidor $nuevo_nombre = 'EL Archivo' //Reviso que el archivo sea del tipo ZIP o RAR; y que pese menos de 5Mb if (!((strpos($tipo, "rar" || strpos($tipo, "zip") && ($tamano_archivo < 5120))) { echo "El tipo de archivo o el tamaño no es correcto."; }else{ //Verifico que pueda mover el archivo y cambiarle el nombre. El archivo se guardará donde esta la pagina if (move_uploaded_file(FILES['userfile']['tmp_name'], $nuevo_nombre)){ echo "El archivo subió!!."; }else{ echo "Error al subir el archivo. Inténtelo nuevamente."; } } ?> Este es el archivo php que hace todo el trabajo. Aunque casi todo el código esta comentado, explicaremos cada línea del código. $_FILES = $HTTP_POST_FILES Es una variable global, propia de PHP que obtiene todos los datos. Esta variable esta disponible desde la versión 4.1.0, las versiones anteriores deben usar $HTTP_POST_FILES. Para obtener estos datos le pasamos el nombre del campo (en este caso, “userfile”), que es de tipo “file”, que colocamos en el formulario de la pagina HTML. Datos que contiene la variable: $_FILES ['userfile'][ 'name'] Devuelve el nombre del archivo $_FILES['userfile']['type'] Devuelve el tipo de archivo $_FILES['userfile']['size'] Devuelve el tamaño del archivo en Kb $_FILES['userfile']['tmp_name'] Devuelve el nombre con el que se guardo temporalmente $_FILES['userfile']['error'] Devuelve distinto de 0 si tuvo algún error (ver la lista de errores en http://www.php.net/manual/en/features.file-upload.errors.php) $nuevo_nombre Es una variable a la cual le asigno el valor que quiero como nombre de archivo strpos(EnCadena, BuscarPalabra) Podríamos decir que busca una cadena de string, en otra cadena de string. No es así como funciona exactamente pero para este ejemplo no es necesario entrar en más detalles. move_uploaded_file(NombreArchivo, Destino) Esta es una función de PHP que, pasándole el nombre de un archivo, lo mueve al destino que se le indique. En nuestro caso, le pasamos el nombre temporal del archivo que subimos, y le asignamos un nuevo nombre. Al no ponerle ningún destino mas que el nombre, el destino del mismo será en la misma carpeta donde esta puesto nuestro PHP. Verificar siempre, que la carpeta destino donde queremos mandar el archivo, tenga los permisos de escritura, de lo contrario, nos devolverá un error. También puedes crear una pagina PHP con un poco mas de controles, y por supuesto, siempre puedes ir mejorándola. Aca tienes un ejemplo: Guardar_Archivo_Avz.php (chequear código…) <? //verifico que el archivo llego al servidor if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { $nombre = $_FILES['userfile']['name']; con el que lo subió el usuario $tipo = $_FILES['userfile']['type']; //tipo de archivo (jpg,g if,rar,txt ,etc) $tamanio = $_FILES['userfile']['size']; //tamaño del archivo en Kb; 1024Kb = 1Mb $error = $_FILES['userfile']['error']; //si aparecio algun error en la subida$nombre_temporal = $_FILES['userfile']['tmp_name']; //Nombre temporal que se le asigna al archivo cuando sube a tu servidor $carpeta = 'archivos/'; $nuevo_nombre = 'Archivo_Subido'.date('Y-m-d H:i:s'); //le concatene la fecha del momento para que no se repita el nombre //Verifico que el nombre no este vacio if(!empty($nombre)) { //Verifico que no tenga ningun error if($error==0){ //Reviso que el achivo sea del tipo ZIP o RAR; if (strpos($tipo, "rar" || strpos($tipo, "zip") { //Reviso que el archivo pese menos de 5 Mb; if ($tamanio_archivo < 5120) { //Verifico que pueda mover el archivo y cambiarle el nombre. //El archivo se guradara donde esta esta pagina if (move_uploaded_file(FILES['userfile']['tmp_name'], $nuevo_nombre)){ echo "El archivo subio."; } else{ echo "Ocurrió algún error al subir el fichero. No pudo guardarse."; } } else{ echo "Error con el archivo. <br> El archivo pesa mas de 5Mb"; } } else{ echo "Error con el archivo. <br> El archivo no es ni del tipo zip ni rar"; } else{ echo "Error con el archivo. <br> El archivotiene un error en la subida"; } } else{ echo "Error con el archivo. <br> El archivo no tiene nombre"; } } else{ echo "El archivo no subio correctamente"; } ?> <php> (FIN DEL CURSO)

10
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.