Per salvare l'hash delle password in PHP, e per controllarne la validità in fase di login, ero solito usare solo la funzione sha1.

Ma ho scoperto che c'è un modo più sicuro, usando password_hash e password_verify.

Unirest è un libreria per creare richieste HTTP in maniera molto semplice e veloce.

E' disponibile per diversi linguaggi, ed oggi vedremo un esempio con PHP.

Per installare la libreria possiamo usare composer:

$ composer require mashape/unirest-php

Verrà scaricato tutto dentro una directory vendor.

Gli stream context possono essere utilizzati in diversi modi e per diversi scopi.

Nel mio caso specifico mi è servito per far si che lo script PHP non si interrompesse nel caso di un flusso dati troppo grande.

In sostanza ho degli script che si agganciano ad un web service REST, ed elaborano il JSON inviato.

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.