cvs: phpdoc-ca /chapters tutorial.xml
[email protected] ("Bernat Foj Capell") Tue, 30 Aug 2005 15:09:49 -0000
| Newsgroups | php.doc.ca |
|---|---|
| Message-ID | <cvsjabro1125414589@cvsserver> |
--jabro1125414589
Content-Type: text/plain
jabro Tue Aug 30 11:09:49 2005 EDT
Added files:
/phpdoc-ca/chapters tutorial.xml
Log:
initial translation
--jabro1125414589
Content-Type: text/plain
Content-Disposition: attachment; filename="jabro-20050830110949.txt"
http://cvs.php.net/co.php/phpdoc-ca/chapters/tutorial.xml?r=1.1&p=1
Index: phpdoc-ca/chapters/tutorial.xml
+++ phpdoc-ca/chapters/tutorial.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.37 Maintainer: jabro Status: ready -->
<chapter id="tutorial">
<title>Un simple tutorial</title>
<para>
Aquí ens agradaria ensenyar els bàsics del PHP en un tutorial simple
i curt. Aquest text només tracta de creació de pàgines web dinàmiques
amb el PHP, tot i que aquest no és només capaç de crear pàgines web.
Vegeu la secció titulada <link linkend="intro-whatcando">Què pot fer el
PHP</link> per a més informació.
</para>
<para>
Les pàgines web amb contingut PHP es tracten igual que les pàgines
HTML normals i les podeu crear i editar de la mateixa manera que creeu
normalment les pàgines HTML normals.
</para>
<sect1 id="tutorial.requirements">
<title>Què necessito?</title>
<para>
En aquest tutorial assumim que el vostre servidor té suport activat
per al PHP i que tots els fitxers acabats en <filename>.php</filename>
són manegats pel PHP. En la majoria de servidors, aquesta és l'extensió
per defecte dels fitxers PHP, però pregunteu a l'administrador
per estar-ne segur. Si el vostre servidor suporta PHP, llavors
no necessiteu fer res. Simplement creeu els vostres fitxers
<filename>.php</filename>, poseu-los en el vostre directori
web i el servidor automàticament els analitzarà per vosaltres.
No hi ha necessitat de compilar res ni necessiteu instal·lar eines
extra. Penseu en aquests fitxers amb contingut PHP com fitxers
HTML normals amb una família sencera de nous marcadors màgics que
us permetran fer tot un munt de coses. Els servidors web ofereixen
normalment suport per PHP, però si el vostre no ho fa, considereu
el llegir la secció <ulink url="&url.php.links;">
Enllaços PHP</ulink> per trobar servidors web amb el PHP habilitat.
</para>
<para>
Deixeu-nos dir que voldreu estalviar el preciós ample de banda i
desenvolupar localment. En aquest cas, voldreu instal·lar un servidor
web, com ara
<ulink url="&url.apache;">Apache</ulink>, i per descomptat el
<ulink url="&url.php.downloads;">PHP</ulink>. Segurament també voldreu
instal·lar una base de dades, com ara
<ulink url="&url.mysql.docs;">MySQL</ulink>.
</para>
<para>
Podeu o bé instal·lar aquests elements individualment o bé triar una
manera més simple. El nostre manual disposa de <link linkend="install">instruccions
d'instal·lació per al PHP</link> (assumint que ja teniu un servidor
web muntat). En cas que tingueu problemes instal·lant el PHP vós mateix,
us suggerim que formuleu les vostres preguntes a la nostra
<ulink url="&url.php.mailing-lists;">llista de correu d'instal·lació</ulink>.
Si en canvi voleu triar la ruta curta, llavors
<ulink url="&url.installkits;">localitzeu un paquet preconfigurat</ulink>
per al vostre sistema operatiu, el qual instal·la automàticament tot això
en tot just uns quants clics de ratolí. És fàcil construir un servidor web
amb suport PHP en qualsevol sistema operatiu, inclosos MacOSX, Linux i Windows.
En Linux, pot ser que trobeu útils <ulink url="&url.rpmfind;">rpmfind</ulink> i
<ulink url="&url.rpmfind.pbone;">PBone</ulink> per a localitzar els
RPMs. Potser també voldreu visitar <ulink
url="&url.apt-get;">apt-get</ulink> per a trobar paquets per a Debian.
</para>
</sect1>
<sect1 id="tutorial.firstpage">
<title>La vostra primera pàgina amb contingut PHP</title>
<para>
Creeu un fitxer anomenat <filename>hola.php</filename> i poseu-lo
al directori web del vostre servidor web (<varname>DOCUMENT_ROOT</varname>)
amb el contingut següent:
</para>
<para>
<example>
<title>La nostra primera seqüència PHP: <filename>hola.php</filename></title>
<programlisting role="php">
<![CDATA[
<html>
<head>
<title>Prova PHP</title>
</head>
<body>
<?php echo '<p>Hola, món</p>'; ?>
</body>
</html>
]]>
</programlisting>
<simpara>
Utilitzeu el vostre navegador per accedir al fitxer a través de l'URL
del vostre servidor, acabant amb la referència al fitxer "/hola.php".
Si desenvolupeu localment aquest URL serà quelcom com ara
<literal>http://localhost/hola.php</literal>
o <literal>http://127.0.0.1/hola.php</literal> però això depèn de la
configuració del servidor web. Si tot està configurat correctament,
aquest fitxer serà analitzat pel PHP i s'enviarà la següent sortida
al vostre navegador:
</simpara>
<screen role="html">
<![CDATA[
<html>
<head>
<title>Prova PHP</title>
</head>
<body>
<p>Hola, món</p>
</body>
</html>
]]>
</screen>
</example>
</para>
<para>
Aquest programa és extremadament simple i realment no necessitàveu utilitzar
PHP per crear una pàgina com aquesta. Tot el que fa és mostrar
<literal>Hola, món</literal> utilitzant la sentència <function>echo</function>.
Noteu que el fitxer <emphasis>no necessita ser executable</emphasis>
o especial de cap manera. El servidor sap que aquest fitxer s'ha d'interpretar
pel PHP perquè porta l'extensió ".php", amb la qual el servidor està configurat
per a que la passi al processador PHP. Podeu pensar en això com un fitxer normal
HTML que té un conjunt de marcadors especials disponibles que us permeten fer
un munt de coses interessants.
</para>
<para>
Si heu intentat aquest exemple i no ha sortit res, us ha preguntat si voleu
descarregar-lo, o heu vist el fitxer sencer com a text, les possibilitats són
que no hagueu habilitat el PHP al servidor, o que no estigui correctament
configurat. Demaneu al vostre administrador que l'habiliti per vós usant
el capítol <link linkend="install">Instal·lació</link> del manual. Si esteu
desenvolupant localment, llegiu també el capítol d'instal·lació per assegurar-vos
que tot està configurat correctament. Assegureu-vos que accediu al fitxer
via http amb el servidor que us proveeix la sortida. Si simplement crideu
el fitxer des del sistema de fitxers, llavors el PHP no l'analitzarà. Si
els problemes persisteixen, no dubteu a utilitzar alguna de les opcions
<ulink url="&url.php.support;">d'ajuda PHP</ulink>.
</para>
<para>
L'interès de l'exemple és mostrar el format del marcador especial del PHP.
En aquest exemple hem usat <literal><?php</literal> per a indicar l'inici
d'un marcador PHP. Llavors posem la sentència PHP i deixem el mode PHP tot
afegint el marcador de clausura, <literal>?></literal>. Podeu entrar i
sortir del mode PHP en un fitxer HTML com aquest on i quan volgueu. Per a més
detalls, llegiu la secció del manual de la <link linkend="language.basic-syntax">
sintaxi bàsica del PHP</link>.
</para>
<note>
<title>Una nota sobre els editors de text</title>
<para>
Hi ha força editors de text i entorns integrats de desenvolupament (IDEs)
que podeu usar per a crear, editar i gestionar els fitxers PHP. Una llista
parcial d'aquestes eines es manté a <ulink url="&url.phpeditorlist;">Llista
d'editors PHP</ulink>. Si desitgeu recomanar un editor, si us plau, visiteu
la pàgina anterior i demaneu al mantenidor de la pàgina que afegeixi l'editor
a la llista. Tenir un editor amb ressaltat de sintaxi pot ser d'ajuda.
</para>
</note>
<note>
<title>Una nota sobre processadors Word</title>
<para>
Els processadors Word com ara el StarOffice Writer, el Microsoft Word i l'Abiword
no són òptims per a l'edició de fitxers PHP. Si desitgeu usar un d'aquests
per a aquesta seqüència de prova, us heu d'assegurar que deseu el fitxer com
a <emphasis>text pla</emphasis> o el PHP no podrà llegir i executar la seqüència.
</para>
</note>
<note>
<title>Una nota sobre la Llibreta de Windows</title>
<para>
Si esteu escrivint les vostres seqüències PHP amb la Llibreta de Windows
(Bloc de notes), necessitareu assegurar-vos que els vostres fitxers es desen
amb l'extensió .php (la Llibreta afegeix una extensió .txt als fitxers
automàticament a no ser que feu un dels següents passos per a prevenir-ho).
Quan deseu el fitxer i se us pregunta quin nom li voleu donar, poseu el nom
del fitxer entre cometes (és a dir "<filename>hola.php</filename>"). Alternativament,
podeu premer a la caixa 'Documents de text' del diàleg 'Desa' i canviar
el paràmetre a 'Tots els fitxers'. Llavors podeu introduir el nom del fitxer
sense cometes.
</para>
</note>
<para>
Ara que heu creat amb èxit una seqüència PHP que funciona, és hora de crear
la seqüència PHP més famosa! Feu una crida a la funció
<function>phpinfo</function> i veureu un munt d'informació útil sobre el
vostre sistema i la seva configuració, com ara les
<link linkend="language.variables.predefined">variables predefinides</link>
disponibles, els mòduls PHP carregats i els paràmetres de
<link linkend="configuration">configuració</link>. Preneu-vos una mica de
temps i reviseu aquesta informació important.
</para>
<para>
<example>
<title>Aconseguir informació de sistema del PHP</title>
<programlisting role="php">
<![CDATA[
<?php phpinfo(); ?>
]]>
</programlisting>
</example>
</para>
</sect1>
<sect1 id="tutorial.useful">
<title>Quelcom útil</title>
<para>
Deixeu-nos fer ara quelcom més útil. Veureum quin tipus de navegador
està usant el visitant. Per a això, revisem la cadena d'agent usuari
que el navegador envia com a part de la demanda HTTP. Aquesta informació
s'emmagatzema en una <link linkend="language.variables">variable</link>.
Les variables en PHP sempre han de començar amb un signe de dòlar. La
variable en què estem interessats ara mateix és <varname>$_SERVER['HTTP_USER_AGENT']</varname>.
</para>
<note>
<para>
<link linkend="reserved.variables.server">$_SERVER</link> és una
variable especial reservada del PHP que conté tota la informació del
servidor web. És coneguda com autoglobal (o superglobal). Vegeu la pàgina
del manual relacionada a
<link linkend="language.variables.superglobals">superglobals</link>
per a més informació. Aquestes variables especials es van introduir al PHP
<ulink url="&url.php.release4.1.0;">4.1.0</ulink>. Abans d'aquest moment,
usàvem les antigues matrius <varname>$HTTP_*_VARS</varname> en el seu
lloc, com ara la <varname>$HTTP_SERVER_VARS</varname>. Tot i que són
obsoletes, aquestes variables més velles encara existeixen. (Vegeu
també la nota de
<link linkend="tutorial.oldcode">codi antic</link>.)
</para>
</note>
<para>
Per a visualitzar aquesta variable, podeu fer simplement:
</para>
<para>
<example>
<title>Impressió d'una variable (element d'una matriu)</title>
<programlisting role="php">
<![CDATA[
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
]]>
</programlisting>
<para>
Un exemple de sortida d'aquesta seqüència pot ser:
</para>
<screen role="html">
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
</screen>
</example>
</para>
<para>
Hi ha força <link linkend="language.types">tipus</link> de
variables disponibles al PHP. A l'exemple de dalt hem imprès
un element d'una <link linkend="language.types.array">Matriu</link>.
Les matrius poden ser molt útils.
</para>
<para>
<varname>$_SERVER</varname> és tan sols una variable que el PHP posa
automàticament a la vostra disposició. Hi ha una llista que es pot veure
a la secció <link linkend="reserved.variables">Variables reservades</link>
del manual o també en podeu aconseguir una llista completa mirant a la
sortida de la funció <function>phpinfo</function> usada en l'exemple de
la secció prèvia.
</para>
<para>
Podeu posar múltiples sentències PHP dins dels marcadors PHP i crear
petits blocs de codi que fan més que un simple echo.
Per exemple, si voleu verificar si té Internet Explorer
podeu fer això:
</para>
<para>
<example>
<title>Exemple que usa <link linkend="language.control-structures">estructures
de control</link> i <link linkend="language.functions">funcions</link></title>
<programlisting role="php">
<![CDATA[
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Esteu usant Internet Explorer.<br />';
}
?>
]]>
</programlisting>
<para>
Un exemple de sortida d'aquesta seqüència podria ser:
</para>
<screen role="html">
<![CDATA[
Esteu usant Internet Explorer.<br />
]]>
</screen>
</example>
</para>
<para>
Aquí introduïm un parell de conceptes nous. Tenim una sentència
<link linkend="control-structures.if">if</link>.
Si sou familiar amb la sintaxi bàsica del llenguatge C, això
us hauria de semblar lògic. Altrament, probablement hauríeu
d'agafar un llibre introductori de PHP i llegir el primer parell
de capítols, o llegir la part del manual de <link linkend="langref">Referència
de llenguatge</link>. Podeu trobar una llista de llibres sobre PHP
a <ulink url="&url.php.books;">&url.php.books;</ulink>.
</para>
<para>
El segon concepte que hem introduït és la crida a la funció <function>strpos</function>.
<function>strpos</function> és una construida al PHP que
cerca una cadena dins una altra cadena. En aquest cas
estem cercant <literal>'MSIE'</literal> (l'anomenada agulla)
dins de <varname>$_SERVER['HTTP_USER_AGENT']</varname> (l'anomenat
paller). Si l'agulla es troba dins del paller, la funció retorna
la posició de l'agulla relativa a l'inici del paller. Altrament,
retorna &false;. Si no retorna &false;, l'expressió <link
linkend="control-structures.if">if</link> s'evalua a &true;
i el codi entre les {claus} s'executa. Altrament, el codi no
s'executa. Sentiu-vos lliure de crear exemples similars, amb
<link linkend="control-structures.if">if</link>,
<link linkend="control-structures.else">else</link>, i altres
funcions com ara <function>strtoupper</function> i
<function>strlen</function>. Cada pàgina del manual conté exemples,
també. Si teniu dubtes sobre l'ús de funcions, voldreu llegiu
tan la pàgina del manual sobre
<link linkend="about.prototypes">com llegir una definició de funció</link>
i la secció sobre
<link linkend="language.functions">funcions PHP</link>.
</para>
<para>
Podem portar això més lluny i ensenyar-vos com podeu entrar i sortir
del mode PHP àdhuc al mig d'un bloc PHP:
</para>
<para>
<example>
<title>Barrejar els modes PHP i HTML</title>
<programlisting role="php">
<![CDATA[
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() ha d'haver retornat no-fals</h3>
<p>Esteu usant Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() ha d'haver retornat fals</h3>
<p>No esteu usant Internet Explorer</p>
<?php
}
?>
]]>
</programlisting>
<para>
Un exemple de sortida d'aquesta seqüència podria ser:
</para>
<screen role="html">
<![CDATA[
<h3>strpos() ha d'haver retornat no-fals</h3>
<p>Esteu usant Internet Explorer</p>
]]>
</screen>
</example>
</para>
<para>
En lloc d'utilitzar una sentència echo de PHP per treure alguna cosa,
hem sortit del mode PHP i simplement hem enviat HTML directament. El
punt més important i poderós que cal notar és que el flux lògic de la
seqüència roman intacte. Només un dels blocs HTML al final es mostrarà
al visitant depenent del resultat de <function>strpos</function>.
En altres paraules, depenent de si la cadena <literal>MSIE</literal>
es troba o no.
</para>
</sect1>
<sect1 id="tutorial.forms">
<title>Tractament de formularis</title>
<para>
Una de les característiques més potents del PHP és la forma amb què
gestiona els formularis HTML. El concepte bàsic que és important
entendre és que qualsevol element de formulari estarà disponible
automàticament a les vostres seqüències PHP. Si us plau, llegiu
la secció del manual de <link linkend="language.variables.external">Variables
de fora el PHP</link> per a més informació i exemples sobre l'ús
de formularis amb PHP. Heus aquí un exemple de formulari HTML:
</para>
<para>
<example>
<title>Un formulari HTML simple</title>
<programlisting role="html">
<![CDATA[
<form action="action.php" method="post">
<p>El vostre nom: <input type="text" name="nom" /></p>
<p>La vostra edat: <input type="text" name="edat" /></p>
<p><input type="submit" /></p>
</form>
]]>
</programlisting>
</example>
</para>
<para>
No hi ha res especial en aquest formulari. És un formulari directament
en HTML sense marcadors especials de cap tipus. Quan l'usuari omple
el formulari i prem el botó d'enviar, es crida la pàgina
<filename>action.php</filename>. En aquest fitxer escriuríem quelcom
com ara això:
</para>
<para>
<example>
<title>Impressió de dades del nostre formulari</title>
<programlisting role="php">
<![CDATA[
Hola <?php echo $_POST['nom']; ?>.
Tens <?php echo $_POST['edat']; ?> anys.
]]>
</programlisting>
<para>
Un exemple de sortida d'aquesta seqüència podria ser:
</para>
<screen role="html">
<![CDATA[
Hola Joan. Tens 22 anys.
]]>
</screen>
</example>
</para>
<para>
Hauria de ser obvi veure què fa. No hi ha res més.
Les variables <varname>$_POST['nom']</varname> i <varname>$_POST['edat']</varname>
les prepara automàticament el PHP per a vós. Prèviament hem usat
l'autoglobal <varname>$_SERVER</varname>; a dalt acabem d'introduir
l'autoglobal <link linkend="reserved.variables.post">$_POST</link>
la qual conté totes les dades POST. Noteu com el
<emphasis>method</emphasis> del nostre formulari és POST. Si haguéssim
usat el mètode <emphasis>GET</emphasis>, llavors la nostra informació
seria a l'autoglobal <link linkend="reserved.variables.get">$_GET</link>.
Podeu també usar l'autoglobal <link linkend="reserved.variables.request">$_REQUEST</link>,
si no voleu preocupar-vos de l'origen de les vostres dades. Aquesta
conté informació barrejada de les dades de GET, POST i COOKIE. També
vegeu la funció <function>import_request_variables</function>.
</para>
<para>
Podeu tractar també amb entrades de dades XForms en PHP, tot i que
us trobareu còmodes amb els formularis HTML durant un bon temps.
Tot i que treballar amb XForms no és per a principiants, pot ser que
hi esteu interessat. Tenim una <link linkend="features.xforms">petita
introducció de gestió de dades rebudes d'XForms</link> a la secció de
característiques.
</para>
</sect1>
<sect1 id="tutorial.oldcode">
<title>Ús de codi antic amb noves versions del PHP</title>
<para>
Ara que el PHP ha crescut fins a ser un llenguatge de seqüències popular,
hi ha un munt de repositoris públics i biblioteques que contenen codi que
podeu reutilitzar. Els desenvolupadors PHP han tractat força de preservar
la compatibilitat cap enrera, així que una seqüència escrita per a una
versió més antiga funcionarà (idealment) sense canvis en una versió més
nova del PHP. A la pràctica, es necessitaran fer alguns canvis.
</para>
<para>
Dos dels canvis recents més importants que afecten el codi vell són:
<itemizedlist>
<listitem>
<simpara>
L'obsoletització de les antigues matrius <varname>$HTTP_*_VARS</varname>
(les quals s'han d'indicar com a global quan s'usen dins una funció o un
mètode). Les
<link linkend="language.variables.superglobals">matrius autoglobals</link>
següents es van introduir al PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink>.
Són: <varname>$_GET</varname>, <varname>$_POST</varname>,
<varname>$_COOKIE</varname>, <varname>$_SERVER</varname>,
<varname>$_FILES</varname>, <varname>$_ENV</varname>,
<varname>$_REQUEST</varname>, i <varname>$_SESSION</varname>. Les
antigues matrius <varname>$HTTP_*_VARS</varname>, com ara
<varname>$HTTP_POST_VARS</varname>, encara existeixen tal com han fet des del PHP 3.
&avail.register-long-arrays;
</simpara>
</listitem>
<listitem>
<simpara>
Ja no es registren variables externes en l'àmbit global per defecte.
En altres paraules, des del PHP
<ulink url="&url.php.release4.2.0;">4.2.0</ulink> la directiva PHP
<link linkend="ini.register-globals">register_globals</link> està
<emphasis>off</emphasis> (desactivada) per defecte al &php.ini;. El
mètode preferit d'accedir a aquests valors és via les matrius autoglobals
mencionades abans. Les seqüències velles, llibres i tutorials pot ser
que confiïn que aquesta directiva està activada. Si ho estés, per exemple,
hom podria usar <varname>$id</varname> de l'URL
<literal>http://www.example.com/foo.php?id=42</literal>. Estigui o no
activat, <varname>$_GET['id']</varname> sempre està disponible.
</simpara>
</listitem>
</itemizedlist>
Per a més detalls d'aquests canvis, vegeu la secció de
<link linkend="language.variables.predefined">variables predefinides</link>
i els enllaços que hi ha.
</para>
</sect1>
<sect1 id="tutorial.whatsnext">
<title>I ara què ve?</title>
<para>
Amb el vostre nou coneixement hauríeu de poder entendre la
majoria del manual i també les diverses seqüències d'exemple
disponibles als arxius d'exemple. També podeu trobar altres
exemples dels webs php.net a la secció d'enllaços:
<ulink url="&url.php.links;">&url.php.links;</ulink>.
</para>
<para>
Per a veure diverses presentacions de diapositiva que mostren
més del què el PHP pot fer, vegeu els Llocs de material de
conferències PHP: <ulink url="&url.php.conf;">
&url.php.conf;</ulink> i <ulink url="&url.php.talks;">&url.php.talks;
</ulink>
</para>
</sect1>
</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:"../../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
-->
--jabro1125414589--