PHP introducció

De Cacauet Wiki
Dreceres ràpides: navegació, cerca

PHP és un llenguatge per generar codi HTML. De fet, les sigles "PHP" signifiquen "PHP: Hypertext Preprocessor" (definició recursiva).

PHP s'executa en el servidor, mai al client.

Web applications.png


Instal·lació d'Apache i arxius PHP[modifica]

La manera més comuna de treballar és amb Apache i arxius *.php enlloc dels clàssics *.htm o *.html. Un arxiu *.php de fet sol combinar HTML i PHP. Apache executa l'arxiu *.php i el resultat (totalment HTML) serà enviat al client.

Treballant amb Apache i Linux[modifica]

En Ubuntu o Debian podem instal·lar els paquets necessaris amb:

$ sudo apt-get install apache2 php5 mysql-server phpmyadmin
  • Si treballeu amb Apache al directori /var/www potser us serà còmode canviar el propietari d'aquesta carpeta al vostre usuari (amb chown). Així podreu escriure sense problemes i generar els vostres arxius .php allà mateix sense haver de fer "sudo".
  • No convé posar permisos 777 a la carpeta /var/www per motius de seguretat.
  • En Ubuntu, si instal·leu l'Apache amb el mòdul userdir (utilitzant el vostre directori ~/public_html d'usuari enlloc del /var/www) tingueu cura d'activar el PHP ja que per defecte està deshabilitat. Cal modificar l'arxiu /etc/apache2/mods-available/php5.conf i comentar amb "#" tota la secció <IfModule mod_userdir.c>. Us ha de quedar algo així:
<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
	SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
	SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
#    <IfModule mod_userdir.c>
#        <Directory /home/*/public_html>
#            php_admin_value engine Off
#        </Directory>
#    </IfModule>
</IfModule>

Apache i Windows[modifica]

Es recomana instal·lar el WAMPP o XAMPP for Windows. http://www.apachefriends.org/en/xampp-windows.html

Aquest paquet ho porta tot integrat: Apache, PHP5 i MySQL. Els arxius *.php els haureu de ficar al directori htdocs (del Apache).


Però anem d'una vegada al codi... :)

Primer arxiu PHP[modifica]

Solem tenir pàgines HTML on insertem codi PHP. Per exemple:

<HTML>
<BODY>
   <H1>Primer arxiu PHP</H1>
   <?php
      echo "<P>El primer paràgraf en PHP: utilitzem la instrucció 'echo'.</P>";
   ?>
</BODY>
</HTML>

Fixeu-vos en diverses coses:

  • Per incrustar codi PHP cal obrir amb "<?php" i finalment tancar amb "?>".
  • La instrucció echo (en color verd oliva) imprimeix text a l'arxiu que rep el client (el text va entre cometes dobles).
  • Les instruccions acaben amb punt i coma ";" (és molt important!)
  • Hem posat la segona paraula 'echo' entre cometes simples perquè si posem cometes dobles liaríem la sintaxi.

El client MAI REP CODI PHP. El resultat que ha de rebre el client és TOT HTML:

<HTML>
<BODY>
   <H1>Primer arxiu PHP</H1>
   <P>El primer paràgraf en PHP: utilitzem la instrucció 'echo'.</P>
</BODY>
</HTML>


Comentaris[modifica]

Cal distingir els comentaris en HTML dels PHP. Veiem els dos exemples:

<HTML>
<BODY>
   <H1>Primer arxiu PHP</H1> <!-- això és un comentari HTML -->
   <?php
      // Un comentari d'una línia: aquesta és la nostra primera líniea de codi PHP
      echo "<P>El primer paràgraf en PHP: utilitzem la instrucció 'echo'.</P>";
 
      /* Amb barra i asterisc podem fer
         comentaris de diverses línies.
         Es fan igual que en C/C++ */
   ?>
</BODY>
</HTML>

Com podeu veure els comentaris en PHP poden ser:

  • d'una sola línia amb //
  • de vàries línies amb /* ...comentari... */


Exercici[modifica]

Fes un arxiu .php utiltizant la comanda echo per fer:

  • títol (H1), subtítol (H2) i un paràgraf (P).

Afegeix al final del codi la instrucció phpinfo(); (en una línia a part).

  • Quin resultat dóna? Explica el que apareix en un comentari de vàries línies dintre del mateix arxiu.

Aquesta instrucció és molt típica per testejar el sistema i veure si s'executa el PHP en l'Apache.