Le funzioni
Come la stragrande maggioranza dei linguaggi di programmazione anche il PHP estende le funzionalità di base del linguaggio tramite delle routine chiamate funzioni questa è la sintassi:
function nomefunz(parametro1,parametro2 ….parametron)
{
istruzioni PHP;
eventuale return di valori
}
esempio
function somma($num1,$num2)
{
$risultato=$num1+$num2
return $risultato
}
funzione che somma due numeri e restituisce il totale.
Da notare che le variabili definite all’interno della funzione hanno uno scope locale quindi la variabile $risultato fuori la funzione somma non esiste
all’interno del programma ci sarà un riferimento alla funzione una chiamata
<? echo “totale= ”. somma(4,5);?>
l’utilizzo della parola global anteposto al nome di una variabile puo renderla globale anche al di fuori della funzione
La ricorsione
Anche il PHP permette di richiamare le funzioni in modo ricorsivo, ovvero è possibile richiamare una funzione dal suointerno. Un classico esempio di questa tecnica è il calcolo del fattoriale. Come noto il fattoriale di un
numero intero positivo n (indicato come n!) è pari a n*(n-1)*(n-2)*…*(n-(n-1)).
Ad esempio: 5! = 5*4*3*2*1 = 120
Ecco come risolvere il problema con l’utilizzo di una funzione ricorsiva:
<html><body>
<?
function fattoriale($numero)f
if($numero <= 1){
return 1; // abbandona la ricorsione
}else{
return $numero*fattoriale($numero-1); //la funzione richiama se stessa
}
}
echo “<br>Calcolo del fattoriale:<br>”;
for($i=-2; $i<=10; $i++){
echo “<br>Il fattoriale di $i è: “.fattoriale($i);
}
?>
</body></html>
Gestione dei file
il PHP ci fornisce diversi strumenti per interagire con il file system del server vediamo i più importanti:
Un file può essere rappresentato come un insieme di righe di dati.
La prima operazione da fare è aprire il file con la funzione fopen(); i cui parametri saranno:
-
percorso e nome del file
-
attributi di apertura (r = > lettura ,r+ = > lettura e scrittura , w= > scrittura si posiziona all’inizio se pieno lo svuota se il file non esiste lo crea, w+ = > lettura scrittura si posiziona all’inizio se pieno lo svuota se il file non esiste lo crea, a=> apre il file in sola scrittura e si posiziona alla fine per aggiungere eventuali nuovi dati , se il file non esiste lo crea a+=> lettura e scrittura si posiziona alla fine per aggiungere eventuali nuovi dati , se il file non esiste lo crea
Il PHP permette anche di aprire file remoti tramite i protocolli più diffusi come HTTP e FTP, ovviamente il file deve essere raggiungibile almeno in lettura.
Esempi :
$f=fopen(“clienti.txt”,”w+”); //apre il file clienti.txt in lettura e scrittura posizione il puntatore al file nella variabile $f
$f=fopen(“https://www.hitech-lab.it/clienti.txt”, “a+”); //apre il file remoto clienti.txt in modalità append e posizione il puntatore al file nella variabile $f
$f=fopen(“ftp://nomeutente:password@indirizzoftp/”,”w”); //apre un file posizionato in un server ftp in modalità scrittura.
Ricordiamoci che ad ogni apertura deve corrispondere una chiusura del file una volta eseguite le operazione con il comando fclose(punt_al_file); es. fclose($f);
Elenco altre funzioni.
file_exist(nomefile); |
Ritorna vero se il file esiste |
feof(POINTERFILE); |
Vero quando si arriva a fine file es. feof($f); |
fgets(P_file,<opzionale>lung byte); default : 1024 byte |
Lettura delle singole righe es: echo fgets($fp); |
fputs(file,string,length) |
Scrive un intera riga |
file(path,include_path,context) |
La funzione file legge un intero file e lo posiziona in un array |
\n \n |
Fine della riga di testo |
Esempio di lettura di un intero file:
<?php
$file = fopen(“test.txt”,”r”);
while(! feof($file))
{
$riga=gets($file);
echo $riga . “<br />”;
}
fclose($file);
?>
esempio di scrittura
<?php
$file = fopen(“test.txt”,”w”);
echo fputs($file,”Hello World. Testing!”);
fclose($file);
?>
esempio funzione file
<? $app=file(“clienti.txt”);
if($app)
{
foreach($app as $valore)
{
echo $valore . “br”;
}
}
else
{ echo “errore di lettura”;}
?>