cvs: phpdoc-ca /chapters tutorial.xml
| From: | Bernat Foj Capell | Date: | Tue, 30 Aug 2005 15:09:49 +0000 |
| Subject: | cvs: phpdoc-ca /chapters tutorial.xml | ||
| Groups: | php.doc.ca | ||
| Request: | Send a blank email to doc-ca+get-70@lists.php.net to get a copy of this message | ||
jabro Tue Aug 30 11:09:49 2005 EDT
Added files:
/phpdoc-ca/chapters tutorial.xml
Log:
initial translation
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 -->
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 -->