Per eseguire il debug in PHP, generalizzando, siamo soliti usare la funzione var_dump.

Ma ha dei limiti, in quando esegue il dump solo di ciò che gli è passato come argomento.

Se vogliamo fare il debug di una funzione, andando a vedere anche da dove è stata chiamata inizialmente, possiamo usare un'ottima funzione: debug_print_backtrace!

Vediamo due esempi banali.

Se volete copiare file con PHP, potete usare una funzione apposita: copy!

La funzione è molto semplice da usare.

Nel caso più semplice bastano due parametri:

copy('file_da_copiare.txt', 'copia.txt');

La necessità di oggi è quella di modificare il valore post_max_size.

Banalmente ho provato a mettere questa riga di codice in testa allo script:

ini_set('post_max_size', 0);

Ma ho scoperto che post_max_size, rientra in quei valori non modificabili attraverso ini_set.

Quindi le soluzioni sono due:

  • cambiare il valore direttamente in php.ini
  • usare un file htaccess

Oggi vediamo come implementare un semplice web service SOAP con PHP.

Creeremo sia la parte client che la parte server, usando un file TXT per leggere e scrivere i dati.

Può essere un buon punto di partenza per qualcosa di più completo e utile; potreste, ad esempio, aggiungere le operazioni su database.

Quindi questi saranno i file, messi dentro alla directory soap (che fantasia!):

  • Client.php
  • Server.php
  • data.txt
  • index.php
  • no_wsdl.php
  • wsdl.php
  • wsdl.wsdl

Qualche settimana fa mi sono trovato davanti a una richiesta particolare: creare mappe immagini con dati esadecimali.

Dopo una breve ricerca, per fortuna, ho trovato una classe su Push cx che fa proprio questo, sfruttando GD.

La classe la potete scaricare da GitHub.

Sul sito c'è già qualche esempio base.

La funzione define, in PHP, permette di definire una costante a runtime; è una funzione molto usata, soprattutto per la configurazione generale di un'applicazione.

Di default non è possibile, però, usare define con gli array.

La sintassi base prevede questo:

define('CHIAVE', 'VALORE DA USARE');

Per poi richiamare la costante in questo modo:

echo CHIAVE;

E se volessi usare un array?

Per ottenere informazioni sulle immiigni con PHP, possiamo semplicemente usare la funzione getimagesize().

Questa ritorna un array con varie info, tra le quali larghezza e altezza.

In più, troviamo altre info come il mime-type, il channel e i bits.

La cosa sulla quale cadono in molti, è come prendere le dimensioni dall'array.

Ho scoperto un'ottima libreria che ci permette di creare un client HTTP con PHP in maniera abbastanza semplice: Guzzle!

Prima di tutto vediamo come installarla; seguiamo questi comandi:

$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar require guzzlehttp/guzzle:~6.0

Una volta terminata la procedura, ci ritroveremo la libreria installata.

Considerate però che è necessario avere PHP 5.5 o superiore.

A questo punto procediamo con qualche esempio.

In questo articolo avevamo visto come reperire gli iscritti di una lista in MailChimp con PHP.

Oggi vediamo come aggiungerli; vedremo due esempi:

  • nel primo verrò creato l'utente solo se la email non esiste, e in caso contrario verrà restituito un errore
  • nel secondo, nel caso di email già esistente, verranno aggiornati i dati di quell'utente

A livello di codice, le modifiche sono molto poche.

In questi giorni sto combattendo con vari servizi web per l'invio di newsletter.

Oggi è toccato a MailChimp!

Nello specifico, avevo bisogno di recuperare tutti gli iscritti da una determinata lista, usando le API v3 e PHP.

Per queste API ancora non esistono degli SDK dedicati, ma è possibile usare cURL per reperire i dati in formato REST.

Prima di iniziare ci servono tre informazioni:

  • la API KEY -> potete crearla facilmente nelle impostazioni del vostro account
  • ID LISTA -> una volta creata la lista, entrate nelle relative impostazioni; lo trovate a fine pagina
  • DATA CENTER -> è l'ultima parte della API KEY, ma lo vedete anche nel vostro url; è simile a us12