Vai al contenuto
Home » My blog » realizzazione siti web: corso di php lezione 12 (funzioni)

realizzazione siti web: corso di php lezione 12 (funzioni)

  • di
realizzazione siti php

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”;}

?>

Aut Ing. Antonio Vizzì ha sviluppato progetti c/c++, Php, mysql,android, iOS, realizzazione siti web ed ottimizzazione SEO, web marketing…..