mirror of
https://github.com/php/doc-es.git
synced 2026-03-26 00:12:06 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@338594 c90b9560-bf6c-de11-be94-00142212c4b1
540 lines
24 KiB
XML
540 lines
24 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: ca7fbbaddcf091178e666a6586f4181d6e429b4d Maintainer: seros Status: ready -->
|
|
<!-- Reviewed: yes Maintainer: seros -->
|
|
<chapter xml:id="tutorial" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<info><title>Un tutorial sencillo</title></info>
|
|
|
|
<para>
|
|
A continuación, nos gustaría mostrarle lo esencial de PHP en un corto y
|
|
sencillo tutorial. Este documento solamente trata de la creación de páginas web
|
|
dinámicas con PHP, aunque PHP no solamente es capaz de crear páginas
|
|
web. Consulte la sección titulada <link linkend="intro-whatcando">¿Qué
|
|
puede hacer PHP?</link> para más información.
|
|
</para>
|
|
<para>
|
|
Las páginas web que usan PHP se tratan igual que páginas HTML
|
|
comunes y corrientes, y se pueden crear y editar de la misma manera
|
|
que normalmente se crean páginas HTML.
|
|
</para>
|
|
|
|
<section xml:id="tutorial.requirements">
|
|
<info><title>¿Qué necesito?</title></info>
|
|
<para>
|
|
En este manual se asume que se cuenta con un servidor que tiene soporte activado
|
|
para PHP y que todos los ficheros con la extensión <filename>.php</filename>
|
|
son tratados por PHP. En la mayoría de servidores, esta es la extensión predeterminada
|
|
para los ficheros de PHP, aunque puede preguntar al administrador de su servidor para estar seguro.
|
|
Si el servidor tiene soporte para PHP, entonces no es necesario hacer nada.
|
|
Simplemente cree sus ficheros <filename>.php</filename>, guárdelos en su
|
|
directorio web y el servidor los analizará por usted.
|
|
No hay necesidad de compilar nada o instalar otras
|
|
herramientas. Piense en estos ficheros habilitados para PHP como simples
|
|
ficheros HTML con el añadido de una nueva familia de etiquetas mágicas que permiten
|
|
todo tipo de cosas.
|
|
</para>
|
|
<para>
|
|
Digamos que quiere ahorrar el preciado ancho de banda y trabajar localmente.
|
|
En este caso, querrá instalar un servidor web, como
|
|
<link xlink:href="&url.apache;">Apache</link>, y por supuesto
|
|
<link xlink:href="&url.php.downloads;">PHP</link>. Lo más seguro
|
|
es que también quiera instalar una base de datos como
|
|
<link xlink:href="&url.mysql.docs;">MySQL</link>.
|
|
</para>
|
|
<para>
|
|
Puede instalarlos de forma independiente o bien puede elegir una manera más sencilla.
|
|
Este manual contiene <link linkend="install">Instrucciones de instalación
|
|
de PHP</link> (asumiendo que tiene algún tipo de servidor web ya configurado).
|
|
Si tuviera problemas con la instalación, sugerimos que formule sus preguntas en
|
|
nuestra <link xlink:href="&url.php.mailing-lists;">lista de correo de
|
|
instalación</link>. Si elige la manera más sencilla,
|
|
<link xlink:href="&url.installkits;">localice un paquete preconfigurado</link>
|
|
para su sistema operativo, el cual instala automáticamente todo esto
|
|
con únicamente unos pocos clics de ratón. Es sencillo configurar un servidor web con
|
|
soporte para PHP en cualquier sistema operativo, incluyendo MacOSX, Linux y Windows.
|
|
En Linux, podría encontrar útil <link xlink:href="&url.rpmfind;">rpmfind</link> y
|
|
<link xlink:href="&url.rpmfind.pbone;">PBone</link> para
|
|
localizar los RPM. También puede visitar <link
|
|
xlink:href="&url.apt-get;">apt-get</link> para buscar paquetes para Debian..
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.firstpage">
|
|
<info><title>Su primera página con PHP</title></info>
|
|
<para>
|
|
Comience por crear un fichero llamado <filename>hola.php</filename> y póngalo
|
|
en el directorio raíz de su servidor web (<varname>DOCUMENT_ROOT</varname>)
|
|
con el siguiente contenido:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Nuestro primer script de PHP: <filename>hola.php</filename></title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<html>
|
|
<head>
|
|
<title>Prueba de PHP</title>
|
|
</head>
|
|
<body>
|
|
<?php echo '<p>Hola Mundo</p>'; ?>
|
|
</body>
|
|
</html>
|
|
]]>
|
|
</programlisting>
|
|
<simpara>
|
|
Utilice su navegador web para acceder al fichero con el URL de su servidor, finalizado
|
|
con la referencia al fichero <literal>/hola.php</literal>. Si está programando localmente,
|
|
este URL será algo parecido a <literal>http://localhost/hola.php</literal> o
|
|
<literal>http://127.0.0.1/hola.php</literal>, pero esto depende de la
|
|
configuración de su servidor web. Si todo está configurado correctamente,
|
|
el fichero será analizado por PHP y se enviará el siguiente contenido a
|
|
su navegador:
|
|
</simpara>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
<html>
|
|
<head>
|
|
<title>Prueba de PHP</title>
|
|
</head>
|
|
<body>
|
|
<p>Hola mundo</p>
|
|
</body>
|
|
</html>
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Este programa es extremadamente simple y realmente no es necesario utilizar
|
|
PHP para crear una página como esta. Lo único que muestra es:
|
|
<literal>Hola mundo</literal> empleando la sentencia <function>echo</function>
|
|
de PHP. Observe que el fichero <emphasis>no necesita ser ejecutable</emphasis>
|
|
o especial de ninguna forma. El servidor reconoce que este fichero necesita ser interpretado
|
|
por PHP debido al empleo de la extensión ".php", ya que el servidor está configurado
|
|
para enviarlo a PHP. Piense como si fuera un fichero HTML normal que tiene una serie
|
|
de etiquetas especiales disponibles con las que puede hacer muchas cosas interesantes.
|
|
</para>
|
|
<para>
|
|
Si intentó usar este ejemplo y no produjo ningún resultado, se le preguntó si deseaba descargar
|
|
el fichero, o se mostró todo el fichero como texto, lo más seguro es que PHP no se encuentre
|
|
habilitado en su servidor o no esté configurado adecuadamente.
|
|
Pídale a su administrador que lo habilite utilizando el capítulo
|
|
<link linkend="install">Instalación</link>
|
|
del manual. Si está trabajando localmente, lea también el
|
|
capítulo dedicado a la instalación para asegurarse de que todo esté configurado
|
|
adecuadamente. Asegúrese de que está accediendo al fichero mediante http y que el servidor
|
|
muestre el resultado. Si está abriendo el fichero desde el sistema de ficheros,
|
|
probablemente no será analizado por PHP. Si el problema persiste,
|
|
no dude en usar alguna de las múltiples opciones del
|
|
<link xlink:href="&url.php.support;">Soporte para PHP</link>.
|
|
</para>
|
|
<para>
|
|
El objetivo de este ejemplo es el formato de las etiquetas especiales de PHP.
|
|
En este ejemplo utilizamos <literal><?php</literal> para indicar el
|
|
inicio de una etiqueta de PHP. Después ponemos la sentencia y abandonamos el modo PHP
|
|
añadiendo la etiqueta de cierre <literal>?></literal>. De esta manera, se puede
|
|
entrar y salir del modo PHP en un fichero HTML cada vez que se quiera. Para más
|
|
información, lea la sección del manual titulada <link linkend="language.basic-syntax">
|
|
Sintaxis básica de PHP</link>.
|
|
</para>
|
|
|
|
<note>
|
|
<info><title>Una observación sobre los avances de línea</title></info>
|
|
<para>
|
|
Los avances de línea tienen poco sentido en HTML, aunque sigue siendo buena idea
|
|
hacer que el código HTML se vea limpio y claro poniendo avances de línea. PHP
|
|
automáticamente eliminará los avances de línea que estén después de
|
|
una etiqueta de cierre <literal>?></literal>. Esto puede ser
|
|
muy útil al poner muchos bloques de PHP o incluir ficheros que contienen PHP
|
|
y que se supone que no deben mostrar nada. Al mismo tiempo, puede resultar
|
|
un poco confuso. Se puede poner un espacio después de la etiqueta de cierre
|
|
<literal>?></literal> para mostrar forzosamente un espacio y un avance de línea,
|
|
o se puede poner un avance de línea explícito en el último echo/print dentro
|
|
del bloque de PHP.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<info><title>Una observación sobre los editores de texto</title></info>
|
|
<para>
|
|
Hay muchos editores de texto y Entornos de Desarrollo Integrados (IDE por sus siglas en Inglés)
|
|
que se pueden emplear para crear, editar, y gestionar ficheros de PHP. Se puede encontrar
|
|
una lista parcial de estos en <link xlink:href="&url.phpeditorlist;">Lista de editores de
|
|
PHP</link>. Si desea recomendar un editor, por favor visite la página mencionada
|
|
anteriormente y pregunte al mantenedor de la página para que lo incluya en la lista. Contar
|
|
con un editor que resalte la sintaxis puede ser de mucha ayuda.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<info><title>Una observación sobre los procesadores de texto</title></info>
|
|
<para>
|
|
Los procesadores de texto como StarOffice Writer, Microsoft Word y Abiword
|
|
no son buenas opciones para editar ficheros de PHP. Si desea utilizar uno de
|
|
estos programas para probar este script, asegúrese de guardar el documento
|
|
como <emphasis>texto sin formato</emphasis>, o de lo contrario, PHP no será capaz de leerlo y ejecutarlo.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<info><title>Una observación sobre el Bloc de Notas de Windows</title></info>
|
|
<para>
|
|
Si escribe sus scripts de PHP usando el Bloc de Notas de Windows, debe asegurarse
|
|
de que sus ficheros sean guardados con la extensión <filename>.php</filename>.
|
|
(El Bloc de Notas automáticamente añade la extensión <filename>.txt</filename> a los
|
|
ficheros a menos que siga los siguientes pasos para prevenirlo). Cuando guarde el fichero
|
|
y el programa le pregunte qué nombre desea dar al fichero, entrecomille el nombre
|
|
(es decir, "<filename>hola.php</filename>"). Una alternativa es hacer clic en el
|
|
menú desplegable "Documentos de Texto (*.txt)" del cuadro de diálogo "Guardar como", y cambiar a la
|
|
opción "Todos los archivos (*.*)". Aquí puede escribir el nombre del fichero sin las comillas.
|
|
</para>
|
|
</note>
|
|
|
|
<para>
|
|
Ahora que ha creado un pequeño script de PHP que funciona correctamente, es
|
|
hora de crear el script de PHP más famoso: hacer una llamada a la
|
|
función <function>phpinfo</function> para obtener mucha información útil
|
|
acerca de su sistema y configuración, como las
|
|
<link linkend="language.variables.predefined">variables predefinidas</link> disponibles,
|
|
los módulos de PHP cargados, y los ajustes de <link linkend="configuration">configuración</link>.
|
|
Tómese algo de tiempo para revisar esta importante información.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Obtener la información del sistema desde PHP</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php phpinfo(); ?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.useful">
|
|
<info><title>Algo útil</title></info>
|
|
<para>
|
|
Hagamos ahora algo que puede ser más útil. Vamos a comprobar
|
|
qué tipo de navegador está utilizando el usuario visitante.
|
|
Para hacerlo, vamos a comprobar el string del agente de usuario que el navegador
|
|
envía como parte de la petición HTTP. Esta información es almacenada en una <link
|
|
linkend="language.variables">variable</link>. En PHP, las variables siempre
|
|
comienzan con un signo de dólar. La variable que nos interesa ahora es
|
|
<varname>$_SERVER['HTTP_USER_AGENT']</varname>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
<varname>$_SERVER</varname> es una variable especial reservada
|
|
por PHP que contiene toda la información del servidor web.
|
|
Es conocida como una superglobal. Consulte la página del manual sobre
|
|
<link linkend="language.variables.superglobals">Superglobales</link>
|
|
para más información. Estas variables especiales fueron introducidas en la versión
|
|
<link xlink:href="&url.php.release4.1.0;">4.1.0</link> de PHP. Antes se podían usar
|
|
en su lugar los antiguos arrays <varname>$HTTP_*_VARS</varname>,
|
|
tales como <varname>$HTTP_SERVER_VARS</varname>. A partir de PHP 5.4.0,
|
|
estos antiguos arrays han sido eliminados. (Véase también la nota sobre
|
|
<link linkend="tutorial.oldcode">código antiguo</link>).
|
|
</para>
|
|
</note>
|
|
<para>
|
|
Para mostrar esta variable, se puede hacer simplemente:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Imprimir una variable (elemento de array)</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
echo $_SERVER['HTTP_USER_AGENT'];
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
Un ejemplo del resultado de este script podría ser:
|
|
</para>
|
|
<screen role="html">
|
|
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Hay muchos <link linkend="language.types">tipos</link> de
|
|
variables en PHP. En el ejemplo anterior se muestra un elemento
|
|
de un <link linkend="language.types.array">Array</link>.
|
|
Los arrays pueden ser muy útiles.
|
|
</para>
|
|
<para>
|
|
<varname>$_SERVER</varname> es simplemente una variable que se encuentra
|
|
disponible automáticamente en PHP. Se puede encontrar una lista en la
|
|
sección <link linkend="reserved.variables">Variables reservadas</link>
|
|
del manual, o se puede obtener una lista completa observando
|
|
la salida de la función <function>phpinfo</function> usada en el
|
|
ejemplo de la sección anterior.
|
|
</para>
|
|
<para>
|
|
Puede usar múltiples sentencias de PHP dentro de una etiqueta de PHP y crear
|
|
pequeños bloques de código que realicen más que un simple 'echo'.
|
|
Por ejemplo, si se quisiera detectar el uso de Internet Explorer,
|
|
se podría hacer algo así:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Ejemplo usando <link linkend="language.control-structures">estructuras
|
|
de control</link> y <link linkend="language.functions">funciones</link></title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
|
|
echo 'Está usando Internet Explorer.<br />';
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
Un ejemplo del resultado de este script sería:
|
|
</para>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
Está usando Internet Explorer.<br />
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Aquí hemos introducido un par de conceptos nuevos. Tenemos
|
|
una sentencia <link linkend="control-structures.if">if</link>.
|
|
Si está familiarizado con la sintaxis básica del lenguaje C,
|
|
debería parecerle lógico. De lo contrario, probablemente debería
|
|
conseguir un libro que le introduzca a PHP, y leer el primer
|
|
par de capítulos, o leer la parte del manual titulada
|
|
<link linkend="langref">Referencia del lenguaje</link>.
|
|
</para>
|
|
<para>
|
|
El segundo concepto que introducimos fue la función llamada a
|
|
<function>strpos</function>. <function>strpos</function> es una función
|
|
integrada en PHP que busca un string dentro de otro. En este caso estamos
|
|
buscando <literal>'MSIE'</literal> (también llamado aguja) dentro de
|
|
<varname>$_SERVER['HTTP_USER_AGENT']</varname> (también llamado pajar).
|
|
Si el string se encuentra dentro del pajar, la función devuelve la posición
|
|
de la aguja relativa al inicio del pajar. De lo contrario,
|
|
devuelve &false;. Si no devuelve &false;, la expresión <link
|
|
linkend="control-structures.if">if</link> se evalúa como &true;
|
|
y se ejecuta el código entre llaves {}. De lo contrario, el código no
|
|
será ejecutado. Tómese la libertad de crear ejemplos similares,
|
|
con <link linkend="control-structures.if">if</link>,
|
|
<link linkend="control-structures.else">else</link>, y otras
|
|
funciones como <function>strtoupper</function> y
|
|
<function>strlen</function>. Cada página del manual relacionada también
|
|
contiene ejemplos. Si no está seguro de cómo usar estas funciones, es recomendable
|
|
que lea las páginas del manual sobre <link linkend="about.prototypes">Cómo interpretar
|
|
una definición de función</link> y la sección sobre <link
|
|
linkend="language.functions">Funciones de PHP</link>.
|
|
</para>
|
|
<para>
|
|
Podemos dar un paso más y mostrar cómo se puede entrar y salir
|
|
del modo PHP incluso en medio de un bloque de código de PHP:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Mezcla de los modos HTML y PHP</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
|
|
?>
|
|
<h3>strpos() debe haber devuelto no falso</h3>
|
|
<p>Está usando Internet Explorer</p>
|
|
<?php
|
|
} else {
|
|
?>
|
|
<h3>strpos() debe haber devuelto falso</h3>
|
|
<p>No está usando Internet Explorer</p>
|
|
<?php
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
Un ejemplo del resultado del script podría ser:
|
|
</para>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
<h3>strpos() debe haber devuelto no falso</h3>
|
|
<p>Está usando Internet Explorer</p>
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
En vez de usar una sentencia echo de PHP para mostrar algo, salimos
|
|
del modo PHP y enviamos solamente HTML. Este es un punto muy importante y potente
|
|
que se ha de observar aquí, y es que la fluidez lógica del script permanece intacta.
|
|
Solamente uno de los bloques HTML terminará siendo enviado al navegador dependiendo
|
|
del resultado de <function>strpos</function>. En otras palabras, depende de si
|
|
el string <literal>MSIE</literal> fue encontrada o no.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.forms">
|
|
<info><title>Tratar con formularios</title></info>
|
|
<para>
|
|
Otra de las características más potentes de PHP es la forma de gestionar
|
|
formularios HTML. El concepto básico que es importante entender es que cualquier
|
|
elemento de un formulario estará disponible automáticamente en sus scripts
|
|
de PHP. Por favor, lea la sección del manual sobre <link
|
|
linkend="language.variables.external">Variables desde fuentes externas</link>
|
|
para obtener más información y ejemplos sobre cómo usar formularios
|
|
con PHP. Observemos un ejemplo:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Un formulario HTML sencillo</title></info>
|
|
<programlisting role="html">
|
|
<![CDATA[
|
|
<form action="accion.php" method="post">
|
|
<p>Su nombre: <input type="text" name="nombre" /></p>
|
|
<p>Su edad: <input type="text" name="edad" /></p>
|
|
<p><input type="submit" /></p>
|
|
</form>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
No hay nada especial en este formulario. Es solamente un formulario HTML
|
|
sin ninguna clase de etiqueta especial. Cuando el usuario rellena este formulario
|
|
y oprime el botón de envío, se llama a la página
|
|
<filename>accion.php</filename>. En este fichero se podría escribir algo así:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Mostrar información de nuestro formulario</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
Hola <?php echo htmlspecialchars($_POST['nombre']); ?>.
|
|
Usted tiene <?php echo (int)$_POST['edad']; ?> años.
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
Un ejemplo del resultado de este script podría ser:
|
|
</para>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
Hola José. Usted tiene 22 años.
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Excepto las partes de <function>htmlspecialchars</function> y de
|
|
<literal>(int)</literal>, debería ser obvio qué es lo que hace el código.
|
|
<function>htmlspecialchars</function> garantiza que cualquier carácter que sea
|
|
especial en html se codifique adecuadamente, de manera que nadie pueda inyectar etiquetas
|
|
HTML o Javascript en la página. El campo edad, ya que sabemos que es un número, podemos
|
|
<link linkend="language.types.typecasting">convertirlo</link> a un valor de tipo
|
|
<type>integer</type> que automáticamente se deshará de cualquier
|
|
carácter no numérico. También se puede hacer lo mismo con PHP con la
|
|
extensión <link linkend="ref.filter">filter</link>.
|
|
Las variables <varname>$_POST['nombre']</varname> y <varname>$_POST['edad']</varname>
|
|
son establecidas automáticamente por PHP. Anteriormente hemos usado
|
|
la superglobal <varname>$_SERVER</varname>; arriba introdujimos
|
|
la superglobal <varname>$_POST</varname>,
|
|
la cual contiene todos los datos de POST. Observe que el
|
|
<emphasis>método</emphasis> de nuestro formulario es POST. Si hubiésemos usado
|
|
el método <emphasis>GET</emphasis>, nuestra información estaría en su lugar
|
|
en la superglobal <varname>$_GET</varname>.
|
|
También se podría usar la superglobal <varname>$_REQUEST</varname>,
|
|
si no le preocupa la fuente de los datos solicitados. Contiene
|
|
toda la información de los datos de GET, POST y COOKIE mezclada.
|
|
</para>
|
|
<para>
|
|
En PHP, también puede tratar con entradas de XForms; aunque probablemente al principio
|
|
se sienta cómodo con los formularios de HTML, los cuales están ampliamente respaldados.
|
|
A pesar de que trabajar con XForms no es para principiantes, podrían interesarle.
|
|
Si es así, en la sección de características hay una <link linkend="features.xforms">
|
|
pequeña introducción a la manipulación de datos recibidos desde XForms</link>.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.oldcode">
|
|
<info><title>Utilizar código antiguo en nuevas versiones de PHP</title></info>
|
|
<para>
|
|
Ahora que PHP ha crecido y se ha convertido en un lenguaje popular, hay
|
|
muchos más repositorios y bibliotecas que contienen código que puede reutilizar.
|
|
Los desarrolladores de PHP han intentado preservar la retrocompatibilidad,
|
|
es decir, si un script fue escrito para una versión antigua, funcionará (idealmente) sin ningún
|
|
cambio en una versión reciente de PHP. En la práctica, normalmente son necesarios algunos cambios.
|
|
</para>
|
|
<para>
|
|
Dos de los cambios más importantes que afectan el código antiguo son:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
Los antiguos arrays <varname>$HTTP_*_VARS</varname> ya no están disponibles a
|
|
partir de PHP 5.4.0. Los siguientes
|
|
<link linkend="language.variables.superglobals">arrays superglobales</link>
|
|
fueron introducidos en PHP <link xlink:href="&url.php.release4.1.0;">4.1.0</link>.
|
|
Son: <varname>$_GET</varname>, <varname>$_POST</varname>,
|
|
<varname>$_COOKIE</varname>, <varname>$_SERVER</varname>,
|
|
<varname>$_FILES</varname>, <varname>$_ENV</varname>,
|
|
<varname>$_REQUEST</varname>, y <varname>$_SESSION</varname>.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Las variables externas ya no son registradas en el ámbito global de forma
|
|
predeterminada. En otras palabras, a partir de PHP
|
|
<link xlink:href="&url.php.release4.2.0;">4.2.0</link>, la directiva de PHP
|
|
<link linkend="ini.register-globals">register_globals</link> está
|
|
desactivada (<emphasis>off</emphasis>) por defecto en &php.ini;. El mejor
|
|
método para acceder a estos valores es por medio de las variables superglobales
|
|
mencionadas anteriormente. Los scripts, libros y tutoriales antiguos podrían contar con que
|
|
esta directiva esté activada (<literal>on</literal>). Si fuera <literal>on</literal>,
|
|
por ejemplo, se podría usar <varname>$id</varname> desde el URL
|
|
<literal>http://www.example.com/foo.php?id=42</literal>. Ya esté activada
|
|
o desactivada, <varname>$_GET['id']</varname> está siempre disponible.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
Para más información relacionada con estos cambios, véase la sección sobre
|
|
<link linkend="language.variables.predefined">variables predefinidas</link>
|
|
y los enlaces que incluye.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.whatsnext">
|
|
<info><title>¿Y ahora qué?</title></info>
|
|
<para>
|
|
Con sus nuevos conocimientos debería ser capaz de entender la mayoría
|
|
del manual y los diversos scripts de ejemplo disponibles en los
|
|
archivos de ejemplos.
|
|
</para>
|
|
<para>
|
|
Para ver varias presentaciones que muestran más acerca de lo que puede hacer PHP,
|
|
véase el Sitio de Material de Conferencias de PHP:
|
|
<link xlink:href="&url.php.talks;">&url.php.talks;</link>
|
|
</para>
|
|
</section>
|
|
</chapter>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|