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

Oggi parliamo di come controllare se una casella email esiste veramente usando PHP.

Non controlleremo se è "scritta bene", ma se è una casella reale.

Per fare questa operazione useremo una classe creata appositamente: SMTP_validateEmail!

Scaricatela dal link e aggiungetela alla directory del vostro progetto.

PHPExcel supporta la creazione di formule direttamente in fase di creazione del file.

L'unica cosa a cui bisogna stare attenti, è scrivere la giusta formula; le formule possono cambiare a seconda se si usa MS Office o LibreOffice ad esempio.

Comunque, in questo caso, vedremo la semplice SUM, che è standard.

Quindi ad esempio:

$xls->getActiveSheet()->setCellValue('A10', '=SUM('A1:A9')');

Piccol tip per convertire le lettere delle colonne di un file Excel in numeri usando PHPExcel; vedremo anche l'operazione contraria.

Vi posso assicurare che oggi mi è servito massivamente!!

Un piccolo trucco, consiste nell'usare direttamente la capicità di PHP di incrementare l'alfabeto.

Qui un esempio banale:

for ($i = 'A'; $i < 'Z'; $i++) {
    echo "$i ";
}