Visualizzazione post con etichetta php. Mostra tutti i post
Visualizzazione post con etichetta php. Mostra tutti i post

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