Guide / tutorial per php. Guida per imparare a programmare in PHP, il miglior linguaggio di programmazione per siti web semplici ma anche complessi.
Visualizzazione post con etichetta php+guide. Mostra tutti i post
Visualizzazione post con etichetta php+guide. Mostra tutti i post

venerdì 23 marzo 2018

Come aggiornare il PHP su Wamp

Se usi wamp per windows per gestire i tuoi siti internet, sicuramente potrebbe capitare di voler aggiornare la versione del php installata di default.
In questi casi puoi agire sostanzialmente in due modi.
Il primo consiste in una brutale reinstallazione da zero di wamp, magari in una nuova cartella, il secondo metodo invece consente di aggiungere una nuova versione php al tuo wamp.

Visto che reinstallare wamp da zero può voler dire molto lavoro per replicare configurazioni di apache, mysql e php varie, la seconda soluzione è decisamente quella più comoda.


Come aggiornare la versione del PHP su Wamp


Per poter aggiornare wamp php più recente senza dover reinstallare tutto, procedere nel seguente modo:
  1. Scarica l'ultima versione del php per windows dal sito ufficiale (o la versione che più ti aggrada): https://windows.php.net/download
  2. Scompatta lo zip appena scaricato dentro la cartella bin/php di wamp, dandogli un nome sulla falsa riga degli altri, ovvero ad esempio:
    C:\wamp\bin\php\php7.2.3
  3. Entra nella versione più recente del php wamp (tra quelle installate in precedenza) e copia nella nuova cartella il file wampserver.conf
    In linea di massima questo file va bene così senza modifiche
  4. Sempre in una precedente cartella di un php funzionante (meglio se il più recente della versione che intendi aggiornare, ovvero la 5.qualcosa se vuoi aggiornare la 5, o la 7.qualcosa se vuoi aggiornare quest'ultima), prendi e copia nel nuovo php i seguenti file: php.ini e phpForApache.ini.
    Questi file vanno modificati con una breve ricerca, basta infatti ricercare il nome della versione precedente, con il nuovo numero.
    Ad esempio:
    extension_dir ="c:/wamp/bin/php/php7.0.10/ext/"
    con
    extension_dir ="c:/wamp/bin/php/php7.2.3/ext/"
  5. Chiudi e riapri wamp

Se avrai fatto tutto correttamente, l'icona di wamp tornerà verde, e cliccando con il tasto sinistro del mouse potrai cliccare su php->version, e da lì vedere e selezionare la nuova versione del php appena installata.

Come aggiornare il PHP su Wamp

Nella foto che ho allegato, la procedura non è filata liscia al 100%, in quanto in questo caso cliccando sul punto esclamativo vicino alla versione del php aggiornato, viene fuori un bel messaggio con scritto: "this php version doesn't seem to be compatible with your actual apache version".
Siccome viene indicata anche la dll mancante, ovvero la php7apache2_4.dll, mi è bastato prenderla dalla solita cartella php precedente ed incollarla nella nuova, e chiudendo e riaprendo wamp tutto ha funzionato... o meglio quasi.
Anche con la dll copiata apache non voleva girare, cercando poi su internet ho visto che è meglio installare la versione safe del php (nel mio caso la "VC15 x64 Thread Safe" e che mixare 32bit e 64bit è sempre il male, per cui attenzione!

php wamp aggiornato

Ovviamente questa procedura fila lisca, quanto più la versione del php da aggiornare è vicina all'ultima versione installata.
Se infatti c'è un abisso tra una versione ed un'altra, è molto probabile che copiare i vari php.ini possa non essere la via più semplice, in quanto potrebbero esserci parametri non più usati/compatibili.
Quindi in questi casi è meglio partire da un php.ini preso direttamente dalla versione che andiamo ad installare, magari aggiornato sulla falsa riga dell'ultimo php.ini funzionante.
Se poi anche la versione di apache o quella di mysql o phpmyadmin risultano incompatibili con il nuovo php, allora potrebbe proprio essere il caso di installare da zero una versione più recente di wamp.

venerdì 2 marzo 2018

Leggi il post

Come contare un array bidimensionale (php)

L'altro giorno mi sono ritrovato ad affrontare un'esigenza particolare, ovvero quella di dover contare un array bidimensionale in php.
Nel mio caso infatti, per esigenze varie,  al posto di salvare i dati nel classico array, mi sono dovuto cimentare con gli array bidimensionali, salvando i dati in più strati, se così si può dire.

Questo comodo metodo però può avere anche un contro, infatti se si usa la count per contare gli elementi dell'array padre (come spiegato in questo post), il risultato finale non sarà il numero totale dei record presenti nell'array php, ma solo la somma degli elementi presenti nel livello indicato.

Vediamo quindi come calcolare il numero totale di record presenti in array a più dimensioni.


Come contare un array bidimensionale in php


Per poter ottenere il numero totale di record presenti in un array bidimensionale php, ci sono sostanzialmente due metodi.

Ecco il primo:

foreach ($array as $tipo) $totali+=count($tipo);

Ciclando l'array e contando i record presenti infatti, li si può salvare in una variabile numerica (opportunamente inizializzata prima del ciclo).
Ecco un esempio pratico:

<?php
    $array[0]["nome"]="Mario";
    $array[0]["cognome"]="Rossi";
    $array[1]["nome"]="Franco";
    $array[1]["cognome"]="Verdi";
    $totali=0;
    foreach ($array as $tipo) $totali+=count($tipo);
    echo $totali;
?>


Il secondo metodo per contare gli array bidimensionali invece, è ancora più ottimale, e consiste nella seguente sintassi:

$totali=array_sum(array_map("count",$array));

Con ancora meno codice infatti, ed usando le due funzioni php array_sum ed array_map, potremo ottenere il numero di record presenti in un array bidimensionale.
Ecco un esempio pratico:

<?php
    $array[0]["nome"]="Mario";
    $array[0]["cognome"]="Rossi";
    $array[1]["nome"]="Franco";
    $array[1]["cognome"]="Verdi";
    $totali=array_sum(array_map("count",$array));
    echo $totali;
?>


E con il conteggio degli array bidimensionali in php, per oggi è tutto :)

giovedì 22 febbraio 2018

Leggi il post

Come sapere quanti elementi contiene un array php

Gli array php sono utilissimi per gestire le variabili che possono assumere più valori.
In un'array infatti, è possibile inserire più valori, per poi richiamarli successivamente.
Pensiamo ad esempio ad un array che contiene i giorni della settimana, o ad uno in cui sono salvati l'elenco dei mesi.

Il concetto base che deve passare è quello che la lunghezza di un array equivale al numero di elementi in esso contenuto.
Vediamo subito come ottenere questo dato.


Come sapere quanti elementi contiene un array in php


La sintassi per scoprire la lunghezza di un array php è molto semplice, ed è la seguente:

COUNT($array)

La funzione php count infatti, restituisce banalmente la lunghezza di un array (ma non solo), e quindi ci fa capire quanti elementi questo contiene.

Vediamo un esempio pratico con i sopra citati giorni della settimana:

<?php
    $mesi=array("Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica");
    echo count($mesi);
?>


Come si può bene immaginare, il risultato di questo conteggio è 7, che guarda caso corrisponde ai giorni della settimana :p

Inutile dire che sapere come ricavare la lunghezza di un array php è di vitale importanza per svolgere diverse operazioni su di esso, come ad esempio poterlo sfogliare.
Anche se a dire il vero è anche possibile sfogliare un array anche senza conoscerne la lunghezza, come spiegato in questo post.

mercoledì 21 febbraio 2018

Leggi il post

Come usare la funzione SPLIT PHP

L'altro giorno vi ho parlato della potentissima funzione php explode, oggi invece vi parlerò della sua principale rivale, ovvero la php split.
Anche questa funzione è ovviamente una delle più utili di questo linguaggio, quindi imparare ad usarla, o quantomeno sapere della sua esistenza, è d'obbligo.

Per citare testualmente il sacro php, la funzione split suddivide una stringa in una matrice utilizzando le espressioni regolari... vediamo come.


Come usare la funzione SPLIT PHP


Ecco la sintassi di base di questa funzione:

list($risultato1,$risultato2,$risultato3)=split($limitiatore-o-espressione-regolare,$testo-da-splittare);

Penso che scritta così già si capisca perfettamente come funziona, ad ogni modo, ecco un esempio più pratico.
Vediamo infatti come splittare una data nelle variabili giorno mese, anno, avendo una variabile data divisa da un delimitatore che può essere la classica barra /.
Ecco cosa dovremmo scrivere:

<?
$data = "21/02/2018";
list($giorno,$mese,$anno)=split("/",$data);
echo "Mese: $mese; Giorno: $giorno; Anno: $anno<br>\n";
?>


Se poi volessimo esagerare ed avere una funzione che estrapola quei valori per le date in vario formato, che ad esempio comprendano i seguenti separatori (/ - .) ecco cosa dovremmo scrivere:

<?
$data = "21-02-2018";
list($giorno,$mese,$anno)=split("[/.-]",$data);
echo "Mese: $mese; Giorno: $giorno; Anno: $anno<br>\n";
?>


Grazie alle espressioni regolari infatti, possiamo usare la split in maniera ancora più efficace.
A questo proposito poi, potrebbe essere una buona idea anche usare la preg_split(), che si dice che sia ancora più performante dell'ormai un po' datata split php.

E con il php in pillole, per oggi è tutto :)

lunedì 19 febbraio 2018

Leggi il post

Come splittare una variabile in php con explode

Esiste una funzione php chiamata explode, sto parlando di quella funzione che consente di splittare una variabile in più parti, dato un determinato carattere jolly che fa da separatore.
Prendiamo ad esempio un testo che contiene diverse virgole. Se volessimo dividere questo testo in più parti e salvare in un array ogni parola compresa tra le virgole, dovremmo proprio usare la funzione php explode.

Vediamo subito come fare.


Come splittare una variabile in php con explode


Ecco la sintassi generale per usare questa potente funzione php:

$array=explode($separatore,$stringa);

Tornando ad un esempio pratico, se ci troviamo ad avere una lista di nomi separati da virgola, per metterli tutti in un'array e per pescarli singolarmente, dovremmo scrivere qualcosa del genere:
<?
$elenco="mario,giovanni,antonio,claudio";
$nomi=explode(",",$elenco);
echo $nomi[0];
?>


In questo semplice esempio abbiamo quindi salvato nell'array nomi, l'elenco dei nomi delimitati da virgola, presenti nella variabile elenco.
Una volta fatto ciò, possiamo accedere singolarmente ad ogni elemento dell'array, passando il numero dell'indice che ci interessa, oppure sfogliare l'intero array.

Explode è un'ottima funzione php, che sicuramente prima o poi capita di usare.
A volte infatti, per comodità può essere necessario salvare i dati presenti in un db o in qualche altra parte, tutti concatenati in una stringa che contiene uno specifico delimitatore.
Ecco che poi grazie all'explode php si può andare a recuperare in qualsiasi momento questi dati.

giovedì 7 dicembre 2017

Leggi il post

Mettere la prima lettera maiuscola in PHP

Ammettiamo di avere a che fare con un elenco di nominativi salvati in un database in maniera poco precisa.
Sto parlando di nomi e cognomi scritti tutti in minuscolo ad esempio, o anche nomi di città senza maiuscole.
Ecco, in questi casi il php ci viene nuovamente in aiuto, grazie ad una comodissima funzione per mettere la prima lettera in maiuscolo tramite codice.

Vediamo subito come fare.


Come mettere la prima lettera maiuscola in PHP


Per poter capitalizzare solo la prima lettera di una parola in php, ovvero per poter mettere la prima lettera maiuscola tramite codice, basta utilizzare la seguente sintassi:

<?php
    $testo="mario";
    $testo=ucfirst($testo);
    echo $testo;
?>


La funzione php ucfirst infatti, si occupa di rendere maiuscola la prima lettera di una parola o di una frase.
Solo la prima lettera però, tutte le altre verranno ignorate.

Se invece volessimo mettere maiuscole tutte le prime lettere di una frase, dovremmo usare un'altra funzione php, ecco quale:

<?php
    $testo="mario il più grande del mondo";
    $testo=ucwords($testo);
    echo $testo;
?>


Grazie infatti alla funzione php ucwords, renderemo maiuscole tutte le iniziali di una frase.

Se poi siamo davanti a nominativi scritti tutti in maiuscolo, ovviamente non possiamo rimediare solo con queste due funzioni.
In questo caso possiamo però prima trasformare tutto in minuscolo, e poi capitalizzare solo la prima lettera.
Se non sai come fare, leggiti questo mio post sulla strtolower php.

Ed anche per oggi è tutto.
Ancora una volta il sacro php dimostra di avere delle funzioni per le stringhe davvero potenti ed efficaci.

venerdì 1 dicembre 2017

Leggi il post

Come sapere la lunghezza di una stringa in PHP

La desiderata del giorno è molto semplice, ovvero scoprire quanto è lunga una stringa in php.
Stiamo dunque parlando nuovamente delle utilissimi funzioni sulle stringhe in php, le quali ci consentono di fare praticamente tutto con le variabili di tipo stringha, che sia testo o numero.

Scoprire la lunghezza di una stringa in php è una cosa che può tornare utile in diversi casi.
Prendiamo ad esempio il caso in cui si deve salvare un dato nel database, un dato che arriva da una form.
Certo, con il sacro javascript è possibile fare controlli sulla lunghezza di un testo lato client (leggi qui se non sai come fare), tuttavia, il js potrebbe anche essere disattivato, quindi è cosa buona e giusta fare questi controlli anche lato server, per non incorrere in qualche spiacevole errore di database.


Come sapere la lunghezza di una stringa in PHP


Veniamo subito al dunque, la funzione php per sapere quanto è lunga una variabile di testo (o una stringa in generale, che sia testo o non), è la seguente:

strlen($stringa);

La potentissima strlen php infatti, riporterà come risultato un numero, un numero corrispondente all'esatta lunghezza del testo contenuto nella variabile passata.
Ovviamente è anche possibile passare direttamente alla funzione anche il testo da controllare, e fare dei controlli con delle if, come riportato in questo esempio:

<?php
    if(strlen("pippo")>4) echo "la parola pippo contiene più di quattro lettere";
?>

Esempio banale lo so, ma rende perfettamente l'idea del funzionamento di questa funzione php per controllare la lunghezza di una stringa.

Bene, per oggi è tutto.
Alla prossima micro lezione di php :)

domenica 26 novembre 2017

Leggi il post

Scoprire url di provenienza visitatore sito (php)

Se all'alba del 2018 ancora non usi google analytics e vuoi sapere lo stesso la provenienza di un visitatore del tuo sito internet, allora il php può sicuramente rispondere a questa tua curiosità.
Ovviamente sto ironizzando, dato che scoprire l'indirizzo di provenienza di un navigatore che giunge sul tuo sito web può avere diversi utilizzi pratici che vanno ben oltre alle mere statistiche.
Ad esempio, potresti voler salvarti in una tabella mysql tutti gli indirizzi di provenienza ad una tua specifica pagina web, per poi fare dei conteggi mirati.
Oppure, un esempio ben più orientalo alla sicurezza informatica, è quello di bloccare l'accesso a dei web script (es. api php / webservices), a chi non proviene da un determinato url web.

Comunque, a parte tutte queste premesse, vediamo subito come sapere l'indirizzo di provenienza dei visitatori del nostro sito web, tramite il php.


Come scoprire l'url di provenienza di un visitatore del tuo sito in php


Per rispondere alle classiche domande: "da che pagina arrivano le visite al mio sito internet?" o "Quali siti internet hanno linkato il mio?" il php ci offre una comoda funzione:

$_SERVER["HTTP_REFERER"];

Stampando a video con un bel echo ciò che è contenuto dentro la variabile server HTTP_REFERER infatti, si otterrà di fatto l'url di provenienza del visitatore.

Questa funzione php inoltre, è talmente potente da poter recuperare anche i parametri passati via GET, ovvero tutte quelle variabili presenti nell'indirizzo della pagina, ovvero ad esempio se arrivo da pagina.html?var1=1&var2=2, la http_referer php restituirà a video tutto l'indirizzo web passato, e quindi di fatto anche le variabili var1 e var2 con rispettivi contenuti (sempre riferito a questo esempio).

Tutto ciò è anche molto utile se per caso fate una pagina web con login con le sessioni.
Se ad esempio passate un url protetto da password a qualcuno, e questo indirizzo riconosce che l'utente è sloggato e lo rimanda alla pagina di login, nella suddetta pagina potrete usare la potentissima $_SERVER["HTTP_REFERER"] php per recuperare l'intero indirizzo di provenienza, compreso di eventuali id di contenuto specifici.
Spetterà poi a voi gestire la cosa, salvando questo url di provenienza dentro ad una variabile da passare come campo hidden del form di login... più facile a farsi che dirsi :)

Bene, è tutto.
Spero che questo breve tutorial su come scoprire da dove proviene un utente che approda sul vostro sito web tramite il php, vi sia stato utile nonostante la presenza del precisissimo google analytics :p
Alla prossima!

venerdì 24 novembre 2017

Leggi il post

Come estrarre una parte di un testo in php

Oggi parliamo di substring php, ovvero di quella funzione che consente di estrarre una parte di un testo.
E' il caso in cui abbiamo una frase o un testo di varia natura, e per qualche motivo vogliamo tagliarla in due prendendone solo la prima parte, oppure la parte centrale, o la parte finale, oppure ancora, solo una lettera.

Grazie alla funzione che andrò ad illustrare infatti, potrete ottenere parti di testo di una stringa più grande, il tutto con la sacra scuola php.


Come estrarre una parte di un testo in php


Per poter pescare specifiche parti di una stringa di testo in php, si usa una funzione chiamata substr.
Questa funzione consente infatti di pescare diverse porzioni di testo, a seconda dei parametri che le si passano.

Qui di seguito qualche esempio pratico.

Estrarre le prime 3 lettere di una frase in php:

<?php
    $stringa="abcdefg";
    echo substr($stringa,0,3);
?>


Saltare la prima lettera di una stringa:

<?php
    $stringa="abcdefg";
    echo substr($stringa,1);
?>


Estrarre la prima lettera di una stringa:

<?php
    $stringa="abcdefg";
    echo substr($stringa,0,1);
?>


Estrarre l'ultima lettera di una stringa:

<?php
    $stringa="abcdefg";
    echo substr($stringa,-1,1);
?>


Direi che è tutto molto chiaro.
Forse vale solo la pena di specificare che indicando alla substr php il parametro 0, si intende dire che bisogna iniziare l'estrazione dal primo carattere, e che quindi il secondo parametro indica la lunghezza del testo da estrarre (es. 0,2 = pesco le prime due lettere di una parola).
Invece, indicando il primo parametro come -1, si intende dire che la ricerca parte dalla fine del testo, e che quindi -1,1 = pesca l'ultima lettera, mentre -2,1 pesca la penultima, e -2,2 pesca le ultime due lettere di una frase, come da esempio sotto riportato:

<?php
    $stringa="abcdefg";
    echo substr($stringa,-2,2);
?>


Infine, volendo è possibile pensare ad una stringa come un array di lettere, in questo caso è possibile pescare l'esatta posizione di una singola lettera usando questa sintassi:

<?php
    $stringa="abcdefg";
    echo $stringa{0};
?>


Senza quindi usare la substr, è possibile richiamare la specifica lettera usando la parentesi graffa ed il numero corrispondente alla posizione (nell'esempio 0 = prima lettera).

Direi che anche per oggi è tutto per le funzioni per le stringhe php.
Questa substring in particolare, potrebbe tornarvi molto utile... buon coding!

martedì 21 novembre 2017

Leggi il post

Come scoprire se un elemento è presente in un array php

Il titolo del post di oggi parla chiaro, quello che ci serve fare è scoprire se un elemento è presente in un array php.
Avevo già parlato in passato degli array in php, quindi per una nozione un po' più generale vi rimando a questo post.
Questo articolo invece è più specifico, e dedicato a questa precisa esigenza.

Può infatti capitare di avere tra le mani una stringa di testo contenuta in una variabile, che vorremmo mettere a confronto con gli elementi di un array, ed ovviamente sarebbe scomodo e forse lungo fare un ciclo per sfogliare l'intero array al solo scopo di verificare la presenza di uno specifico valore.
Vediamo dunque come usare questa potentissima funzione php per il cotrollo diretto dell'esistenza di un valore all'interno di un array.


Come scoprire se un elemento è presente in un array php


Per poter controllare se una variabile/stringa è contenuta in un array, basta utilizzare la seguente sintassi:

if(in_array($valore, $array)) echo " Il valore $valore è presente nell'array";

Con la potentissima funzione php in_array infatti, è possibile sapere subito se il valore di una variabile è presente tra i valori dei singoli elementi di un array.

Ecco un esempio pratico:

<?php
$codici=array("cc","aa","dd","ee");
if(!in_array("gg",$codici)) echo "gg non è presente nell'array<br>";
if(in_array("aa",$codici)) echo "aa è presente nell'array<br>";
?>

Tutto chiaro no? Con questa semplice funzione php, esistente fin dalla versione 4 del linguaggio, potrete velocemente sapere se una stringa è presente in un array, e regolarvi dunque di conseguenza.

giovedì 16 novembre 2017

Leggi il post

Come sapere il charset di una stringa in php

Sia che tu importi un file csv, txt, di testo generale, sia che tu peschi i dati dal database mysql o da altre fonti, con il php c'è la possibilità di sapere il charset usato.
Conoscere questa cosa può essere di vitale importanza per non incorrere nei classici problemi di codifiche delle accentate e dei caratteri speciali.

Quante volte hai importato nel tuo database un file di testo proveniente da chissà dove e poi ti sei accorto che al posto delle lettere accentate avevi dei punti di domanda?
Ebbene, grazie al metodo che ti andrò a spiegare, potrai risolvere il problema accentate php a monte... o per meglio dire, questo è solo l'inizio, poi sceglierai tu stesso in che charset codificare la stringa / testo a tua disposizione.
Vediamo subito come scoprire il charset usato, tramite una comodissima fuzione php.


Come sapere il charset di una stringa in php


Per ricavare il charset usato in una stringa, sia che provenga da un database, che da un file di testo, ecco la funzione php da utilizzare:

mb_detect_encoding($testo);

La funzione php mb_detect_encoding riporterà a video il charset utilizzato nella variabile passata.
Se per caso non dovesse riportare niente, no problem, perchè solitamente l'esigenza è che il charset sia di un determinato tipo, quindi ad esempio potremmo usare questa funzione in una if, dove se il risultato non è un bel UTF-8, allora basta convertite il tutto in uft8.

Grazie a questo stratagemma ad esempio, io ho risolto il problema di un import csv da liste diverse, dove in alcuni casi la pagina php mostrava a video al posto della lettera accentata un punto di domanda (?), ed effettivamente anche andando poi a guardare dentro il database mysql, i caratteri speciali erano stati salvati male.

E con il problema charset php, sempre una spinosa questione e causa di grattacapi, per oggi è tutto :)
Adesso puoi ottenere/ricavare il charset di una stringa/testo con il php, qualsiasi sia la sua provenienza.
Spero che questo tutorial sia stato utile, ed in caso di dubbi, lascia pure un commento.

lunedì 6 novembre 2017

Leggi il post

Come cancellare file con PHP

Breve, anzi brevissimo tutorial su come cancellare file php.
Forse scritta così sembra che la guida spieghi come eliminare un file con estensione php, ma in realtà ovviamente volevo spiegare come fare per rimuovere dal server un file di qualsiasi tipo, da una pagina web, tramite il sacro php.

Vediamo subito come compiere questa semplice quanto potente operazione.


Come cancellare un file con il PHP


Per poter poter eliminare file tramite php, basta utilizzare la seguente sintassi:

unlink("nome-file.estensione");

Tramite questo semplice comando unkink è infatti possibile rimuovere qualsiasi tipo di file dal server, basta avere i necessari permessi di scrittura.
Ovviamente, se il file non si trova nella stessa cartella dello script, va indicato l'esatto percorso, risalendo se necessario di qualche directory, con la classica sintassi dos ../

Se infatti la funzione unlink php non troverà il file da cancellare, verrà riportato a video un messaggio di questo tipo:
Warning: unlink(prova.txt): No such file or directory in percorso completo...

Per evitare ciò, il mio consiglio, prima di usare la potentissima unlink, è quello di controllare sempre se il file esiste, tramite la funzione spiegata in questo post.

Attenzione però ad utilizzare questa funzione, dato che non esiste un cestino sul server che possa ripristinare questo genere di cancellazioni.
Nel dubbio comunque, è sempre bene aver impostato un buon backup :)

giovedì 2 novembre 2017

Leggi il post

Come cancellare una cartella in PHP

Dopo aver imparato come creare directory php, oggi vediamo il processo opposto, ovvero come cancellare cartelle php.
Questa funzionalità è potente quanto pericolosa, quindi va utilizzata con le pinze.
Se infatti eliminiamo una cartella dal server utilizzando il php, poi non ci sarà undo che tenga, e perderemo per sempre la directory rimossa via codice.

Se non vi ho spaventato troppo, continuate pure a leggere per scoprire come fare.


Come cancellare una cartella in PHP


Per poter eliminare directory in php, basta utilizzare la seguente sintassi:

rmdir("nome-cartella");

La funzione php rmdir è infatti in grado di cancellare qualsiasi cartella, a patto che si possiedano i necessari permessi di scrittura sul server.
Inoltre, va indicato l'esatto path della directory, altrimenti si incorrerà nel terribile errore: "No such file or directory".

Come al solito, per spostarsi di livello e cancellare cartelle presenti sopra lo script che esegue l'azione, va utilizzata la sintassi ms dos, linux: ../

Per evitare di incappare in spiacevoli errori dunque, è sempre meglio verificare l'esistenza della cartella che si vuole cancellare, come spiegato in questo post, ovvero scrivendo una cosa del genere:
<?php
    if(is_dir("cartella")) rmdir("cartella");
?>

Un'ultima importante precisazione: con rmdir php è possibile cancellare solo cartelle vuote.
Se infatti si tenterà di cancellare una directory con all'interno file o altre cartelle, verrà riportato il seguente errore: "Directory not empty".
Per cancellare una cartella non vuota in php, occorrerebbe dunque creare una funzione apposta che ricorsivamente svuoti prima la cartella (e le sottocartelle)... ma questo è un altro post (cit.)

martedì 31 ottobre 2017

Leggi il post

Come creare una cartella in PHP

Continuando a parlare di gestione di file e cartelle tramite il php, oggi vediamo come fare per creare una cartella in php.
La sintassi da utilizzare per compiere questa operazione è molto semplice, e chi conosce linux o volendo anche il vecchio dos, già sa il nome del comando da utilizzare.

Quindi, bando alle ciance e vediamo subito come fare per la creazione di directory con il php.


Come creare una cartella in PHP


Per poter creare directory in php, basta utilizzare il comando mkdir.
Detto questo, vediamo quindi la sintassi tipica per compiere questa operazione:

mkdir("percoso-file/nome-file.estensione");

L'unico accorgimento che bisogna tenere è quello di essere posizionati già nel percorso in cui si vuole creare la cartella, ed ovviamente avere i permessi di scrittura sul server.
Senza gli opportuni permessi infatti, non sarà possibile creare la cartella.

Se ad esempio vogliamo creare la cartella test1 e test2, non possiamo scrivere direttamente:
mkdir("test1/test2"); // DA ERRORE
Perchè avremo il temutissimo errore "No such file or directory".
Ma dovremmo invece scrivere:
<?php
    mkdir("test1");
    mkdir("test2");
?>

Ovviamente si può anche creare cartelle spostandosi/posizionandosi con comandi dos tipo ../../nomedir.

Se poi vogliamo anche assegnare dei permessi particolari alla cartella che stiamo andando a creare, sarà possibile passare alla funzione mkdir php, anche il codice corrispondente al tipo di permesso che si vuole concedere alla directory, ad esempio:

mkdir("percoso-file/nome-file.estensione",0600);


Nell'esempio appena citato, il 0600 equivale esattamente a lettura e scrittura per il proprietario della directory, nessun permesso per tutti gli altri.

E con la creazione cartelle in php è tutto, spero che questo post sia d'aiuto a qualche navigatore che approderà qui tramite google :)

venerdì 27 ottobre 2017

Eseguire script php da riga di comando dos

Oggi vediamo una cosa un po' particolare, ovvero come fare per eseguire uno script php da riga di comando dos, ovvero dal prompt dei comandi di windows o da shell linux.

Ma perchè mai voler fare una cosa del genere?
Semplice, ad esempio questa cosa può tornare utile nel caso si voglia fare un file batch bat da far girare in automatico da sistema operativo.
Mettiamo ad esempio di voler schedulare sul nostro pc o sul server windows (e non), uno script php che compie alcune operazioni (ad esempio spedire email collegandosi a mysql), quello che dobbiamo fare è richiamare il nostro script da prompt dei comandi, e salvare il tutto in un file .bat.
Vediamo subito come fare.


Come eseguire script php da riga di comando dos


Ecco la sintassi da utilizzare nel prompt dei comandi di windows, cmd.exe:

php script.php

php da riga di comando

Ovviamente qui sto semplificando al massimo, dato che per poter lanciare i comandi in questo modo, occorre aver prima mappato il php.exe come path di windows (leggere questo post per sapere come fare), oppure è anche possibile lanciare il comando inserendo entrambi i path completi, ad esempio così:

C:\wamp64\bin\php\php5.6.25\php C:\wamp64\www\php\eventi\script.php

Bene, ora volendo si può anche salvare il tutto in un file di testo e rinominarlo come script.bat, per poterci cliccare poi sopra con il mouse ed eseguire in automatico il nostro script php, che in autonomia svolgerà tutte le azioni per cui è stato programmato.


Eseguire script php da riga di comando passandogli parametri


Eseguire uno script php da riga di comando potrebbe non essere sufficiente, se non gli si passa alcun parametro in maniera dinamica.
Vediamo dunque come fare per lanciare una pagina php da riga di comando passandogli parametri.

Ecco la sintassi da utilizzare per il passaggio di php parameters allo script:

php script.php variabile1=valore1 variabile2=valore2...

Così facendo avremo passato al nostro script php, tramite riga di comando, alcuni parametri / variabili.
Quello che però bisogna poi fare è, intercettare questi parametri nella pagina di destinazione.
Ecco la sintassi da utilizzare:

<?php
parse_str(implode('&', array_slice($argv, 1)), $_GET);
$id=trim($_GET["id"]);
?>

Ed ecco che nella nostra php avremo intercettato la chiamata fatta con tutti i parametri passati (l'id in questo esempio).
Non ho altro da aggiungere su questa storia

giovedì 26 ottobre 2017

Leggi il post

Convertire testo tutto minuscolo o maiuscolo in php

Tornando a parlare delle funzioni che riguardano le stringhe, ne esistono un paio che consentono di fare i cosiddetti lowercase ed uppercase php.
Sto parlando ovviamente della possibilità di convertire un testo tutto in maiuscolo o tutto in minuscolo, tramite codice php.

Vediamo subito come compiere queste semplici conversioni di formato di stringhe di testo in php, utilizzando quelle che in altri linguaggi sono chiamate anche uppercase e lowercase, o lcase o ucase php.


Convertire una stringa tutta in minuscolo con il php


Ecco la sintassi da utilizzare per compiere il lowercase php:

echo strtolower("Testo IN MAIUSCOLO che diventa tutto minuscolo");

Il risultato a video sarà ovviamente, una stringa tutta scritta in minuscolo, indipendentemente dal fatto che prima non lo fosse.
La funzione utilizzata è la famosa strtolower php.


Convertire un testo tutto in maiuscolo in php


Per fare invece l'uppercase con il php, si utilizza la funzione strtoupper, con una sintassi del genere:

echo strtoupper("Testo in minuscolo Che diventa tutto MAIUSCOLO");

Ed ecco che la stringa passata alla funzione che capitalizza il testo, viene trasformata tutta in maiuscolo, a prescindere dal fatto che prima fosse stata scritta un po' in maiuscolo ed un po' in minuscolo.

Bene, fine post tutorial php, lower case (minuscole) ed upper case (maiuscole) sono ora spiegati, ora convertire una stringa tutta maiuscola o tutta minuscola non è più un segreto... alla prossima!

lunedì 23 ottobre 2017

Leggi il post

Case IF Switch PHP: come usare

Qualche giorno fa vi avevo parlato delle istruzioni condizionali in php.
Esatto, intendo proprio le famose IF THEN ELSE e della loro sintassi breve.
Oggi invece, volevo spiegarvi di una "nuova" sintassi alternativa, che può essere utilizzata nei casi in cui si abbiano un po' troppe condizioni if.
Vediamo subito nel dettaglio di cosa sto parlando.


Come usare la Case IF Switch PHP


Se si ha a che fare con tante if else php consecutive, allora forse è il caso di provare ad utilizzare una sintassi un po' più pulita, una sintassi che viene utilizzata proprio in questi casi specifici.

Prediamo ad esempio il seguente script php:

<?
    $var=4;
    if($var==1)
    {
        echo "La variabile è 1";
    }
    elseif($var==2)
    {
        echo "La variabile è 2";
    }
    elseif($var==3)
    {
        echo "La variabile è 3";
    }
    elseif($var==4)
    {
        echo "La variabile è 4";
    }
    else
    {
        echo "La variabile è un altro numero";
    }
?>


Lo si potrebbe tradurre con la sintassi switch php, in questo modo:

<?
    $var=4;
    SWITCH($var)
    {
        CASE 1:
        echo "La variabile è 1";
        break;
        CASE 2:
        echo "La variabile è 2";
        break;
        CASE 3:
        echo "La variabile è 3";
        break;
        CASE 4:
        echo "La variabile è 4";
        break;
        DEFAULT:
        echo "La variabile è un altro numero";
        break;
    }
?>


Praticamente funziona così: si definisce uno switch passandogli una variabile, poi si apre la graffa e si inseriscono tutti i case, che altri non sono che le casistiche.
Ad ogni case va anche messo un break, in modo da interrompere lo script nel caso la variabile assuma il valore del case indicato.
Infine, se si vuole prevedere un valore diverso generico della variabile, si usa l'opzione default, in modo che ogni altro caso non indicato dai case, finisca in quello specifico blocco.
Alla fine ovviamente, va chiusa la parentesi graffa.

Spero di esser stato abbastanza chiaro :p
Ovviamente è possibile utilizzare ogni tipo di variabile.
Io ho fatto l'esempio di un numero, ma se fosse stata una variabile di tipo testo, sarebbe bastato scrivere i case in questo modo: case "valore":.

E con le if php direi che è proprio tutto!

domenica 22 ottobre 2017

Leggi il post

Capire se è un file o una cartella in php

Si lo so, manca il soggetto nel titolo del mio post, ma non sapevo proprio che termine usare per definire l'oggetto di cui vi sto per parlare.
Praticamente, quello che in questo articolo voglio spiegare, è come capire se ci si trova davanti ad un file o una cartella in php.
Quindi banalmente potevo anche scrivere, "il contenuto di una variabile è un file o una cartella?"

Senza altri giri di parole, vediamo subito come capire in php se ci si trova davanti ad un oggetto di tipo file o ad una cartella.


Come capire se una variabile è un file o una cartella in php


In questo breve articolo vi spiegherò il funzionamento di ben due funzioni, due semplici funzioni php che consentono di distinguere che tipo oggetto si sta controllando sul server.

Detta all'inglese, is file o is folder?
Eccole le due funzioni, spiegate una per uno.

Come capire se l'oggetto è un file? Semplice, utilizzando questa sintassi:

is_file("percorso-file/nome-file.estensione");

La funzione php is_file, restituirà semplicemente true o false (vero o falso), e quindi in un attimo si avrà la risposta a questa semplice domanda.
Ovviamente, come specificato nell'esempio sopra indicato, va specificato il giusto percorso del file sul server, altrimenti la funzione restituirà sempre false.
Un'altra funzione utile sui file è quella che ne verifica l'esistenza (file_exists).

Come capire se l'oggetto è una directory in php?
Per capire se l'oggetto con cui si ha a che fare è una cartella, basta utilizzare la seguente sintassi:

is_dir("percorso-file/nome-file.estensione");

Ovviamente vale tutto quanto già detto per i file, ovvero, no giusto percorso = no directory trovata = false.

Ed anche per oggi è tutto.
Il php come linguaggio di programmazione per il web, ha delle potenti ed utili funzioni native per la gestione dei file.
Quelle spiegate in questo post sono solo la punta dell'iceberg, restate tonnati per vedere (a breve) qualche esempio più pratico ed utile per i vostri siti internet.

venerdì 20 ottobre 2017

Leggi il post

Come sostituire una parola in un testo con il php

Una funzione che sicuramente prima o poi tutti utilizzeranno programmando in php, è quella che consente di sostituire una parola in in un testo.
La sostituzione di una o più parole, o intere frasi, in un testo più ampio, è infatti una cosa molto comoda in tutti quei casi in cui ci sia bisogno di questo tipo di automatismo.

Ad esempio, se si vuole inserire il contenuto di una variabile, dentro ad un testo in cui abbiamo messo dei caratteri speciali che servono come marcatori, possiamo utilizzare il replace php.
E' l'esempio in cui si sta spedendo una newsletter a più utenti, una newsletter con un testo fisso, che però va personalizzata col classico "buongiorno nome cognome".
In questo caso quindi, bisognerebbe sostituire in automatico i marcatori <nome> e <cognome> presenti nel testo, dinamicamente.


Come sostituire una parola in un testo con il php


Ecco la sintassi ufficiale per fare il replace con il php:

$risultato=str_replace("testo-da-sostituire","nuovo-testo",$testo);

Grazie alla str_replace php infatti, sarà possibile sostituire il testo contenuto in una variabile, con un altro testo a scelta.
Utilizzando questa funzione, verranno sostituite tutte le occorrenze trovate.

Ecco un esempio pratico che potete testare:

<?php
    $testo="Oggi è un altro post non è un bel sito";
    echo str_replace("non è","è",$testo);
?>


Grazie al replace utilizzato in questo script d'esempio, il significato della frase cambierà radicalmente... e meno male aggiungo io :p

giovedì 19 ottobre 2017

Collegarsi all'active directory con il php (ldap)

Qualche tempo fa avevo fatto una guida su come usare il protocollo ldap in php, più che altro per collegarsi ad un database interno tramite openldap.
Oggi invece voglio affrontare una tematica un po' più specifica, ovvero l'active directory.

Chi è pratico di ambienti windows di sicuro già avrà sentito questo nome, infatti nell'active directory vengono salvati gli utenti ed i gruppi di rete.
Se infatti in una rete aziendale tu accedi con il tuo utente di rete, è perchè (probabilmente) questo è attivo e funzionante dentro l'active directory.
Vediamo dunque come effettuare una semplice login in php, ovvero come verificare che la username e la password passate ad pagina web siano valide.


Come collegarsi all'active directory con il php (ldap)


Prima di tutto, per poter connettere il php all'active directory occorre che il protocollo ldap sia attivato.
Ancora una volta dunque, andiamo a controllare il nostro php.ini, o lanciamo il classico phpinfo.
Cercare e scommentare (o aggiungere) la seguente riga:

extension=php_ldap.dll

Poi riavviare il server.

Collegarsi all'active directory con il php (ldap)

Adesso siamo pronti per scrivere un po' di codice php.
Ecco lo script che potete utilizzare per connettersi all'active directori dal php:

<?php
$ldapuser='tua-user-di-rete';
$ldappass='tua-password-di-rete';
$ldapconn=ldap_connect("ip-server") or die("Impossibile connettersi all'LDAP server.");
$ldapbind=ldap_bind($ldapconn, $ldapuser, $ldappass); 
if ($ldapbind) echo "Login effettuato con successo";
else echo "Dati errati";
?>

Questo semplice script, in cui dovrete solo settare l'indirizzo ip del server dell'active directory, la vostra utenza di rete (di default funziona con l'email di solito), e la vostra password, vi consentirà di verificare se l'utente è presente ed attivo in ldap.
Vi basterà dunque adattare questo script in modo che peschi user e password da una form html, ed ecco che avrete creato un'area riservata php a cui avranno accesso solo gli utenti attivi nell'active directory da voi specificata.

Bene, login active directory php: Done!
Buon coding :)