PHP

API LinkedIn
17/09/2013
Dalle ricerche effettuate oggi pare che per fare qualsiasi cosa devi prima far loggare l'utente. Poi puoi accedere a tutto. In generale le API sono molto molto meno documentate di quelle di Facebook e si trovano pochi esempi. Questa è una delle poche demo complete ...   read more
Classe user
10/07/2014
User dalla versione 2.1 include i log fatti corretti su login e logout ...   read more
Creare un archivio zip con una lista di file
31/10/2013
Per creare in php un archivio zip contentente alcuni file è necessario che la cartella dentro alla quale creare lo zip sia un sotto livello (o lo stesso) del file che esegue l'operazione. Se viene messa a un livello superiore, riusciremo a creare il file .zip ma sarà sempre vuoto. Ovviamente è necessario dare i permessi di scrittura alla cartella. /**  * creates a compressed zip file  *  * ...   read more
DST Root CA X3 Expiration | Let's Encrypt
23/09/2021
A seguito dell'imminente scadenza del root-certificate DST Root CA X3 alcuni sistemi potrebbero non riconoscere più i certificati emessi da Let's Encrypt (https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/)In particolare il problema si presenta in uno dei due seguenti scenari:il sistema (client) non è aggiornato da così tanto tempo da non avere tra i propri certificati ...   read more
File Manager
25/03/2014
Interessante: http://www.responsivefilemanager.com/demo.php Soprattutto per l'integrazione con TinyMCE   Questo è un file manager definibile "Accettabile": http://esyfilemanager.smartgap.it/esyFileManager/index.php ...   read more
Formattazione dati per generazione xml
10/01/2014
Per preparare i dati in modo che vengano letti correttamente, usare questa funzione:  function format_xml($testo){          //return $testo;          if(isset($testo) && strlen($testo)>0){                  $testo = str_replace("'", "'", $testo);         $testo = strip_tags($testo);         $testo = html_entity_decode($testo, ENT_QUOTES, ...   read more
Funzione check email
13/12/2013
Spero sia quella definitiva! /**  * questa funzione controlla la validità di un indirizzo mail usando filter_var se è presente il filtro corrispondente,  *  * altrimenti confronta con un pattern  *  * @param string $email indirizzo da controllare  * @return boolean esito  */ function check_email($email){          $filter_found = false;          if(strlen($email) <= 0){ ...   read more
Gestire correttamente la sessione in PHP
11/07/2014
Dando un'occhiata ai log di apache, mi sono accorto che come controlliamo noi che esista la sessione (e quindi su che base decidere di inizializzare o distruggere) non è un metodo propriamente impeccabile, nel senso che verificare semplicemente che isset($_SESSION) === true non sempre è corretto. Nella fattispecie, se siamo a inizio pagina dovrebbe funzionare, il problema è che $_SESSION può ...   read more
Metodo elenco_ricerca per doppio DB
14/07/2014
Un esempio di metodo elenco_ricerca fatto per interagire sia con MySQL che con MSSQL (in particolare curando il LIMIT nei due diversi DB) /**  * restituisce un array di oggetti classe_utenti con i risultati della query  *  * @return \classe_utenti array con gli oggetti di tipo classe_utenti  */ public function elenco_ricerca(){     $dati_query = array();     $ordinamento = "";    ...   read more
Nginx + PHP (fpm) - Debian 10
03/10/2021
Di seguito alcuni passaggi per installare Nginx e php7.3 su Debian 10.I comandi sono da intendersi come un promemoria e un eventuale punto di partenza da adattare di volta in volta alle necessitàsudo apt updatesudo apt install -y gnupg2sudo mkdir -p /srv/sites/defaultecho "Default website" | sudo tee /srv/sites/default/index.htmlNginxecho "Installing nginx stable" && \echo "deb ...   read more
NODE.JS
16/09/2013
A prima vista appare un qualcosa di interessante e che necessita di essere indagato. Quello che ho scoperto finora è: presenta un qualcosa lato server e un qualcosa lato cliente pare che il lato server possa non essere visualizzato direttamente dal cliente (in un'ottica di sicurezza dovrebbe riuscire a parlare direttamente con l'hardware delle schede, sia per quel che riguarda i pin GPIO ...   read more
Node.js + Mysql
16/09/2013
Check out the node.js module list node-mysql — A node.js module implementing the MySQL protocol node-mysql-native — Yet another pure JS async driver. Pipelining, prepared statements. node-mysql-libmysqlclient — MySQL asynchronous bindings based on libmysqlclient node-mysql looks simple enough: var mysql = require('mysql'); var connection = mysql.createConnection({ host : ...   read more
OCR di un codice a barre lato server (php)
18/10/2018
Procedura testata su CentOS (immagine nostra aws), non trasferibile su Windows.installare i requisiti:yum install ImageMagick ImageMagick-devel zbar zbar-develaggiungere (almeno temporaneamente) gli eseguibili php al path:PATH=$PATH:/opt/php71/bininstallare l'estensione di php per imagickpecl install imagickecho "extension=imagick.so" >> /opt/php71/etc/php.iniscaricare il repository seguente in ...   read more
Passare da una pagina di edit a una di view
23/09/2014
Una volta che abbiamo sistemato la pagina di insert/edit (partendo da quella generata in automatico dal form generator) di solito abbiamo la necessità di creare una pagina di dettaglio dell'oggetto in questione. Questo è molto scomodo perché nella pagina di edit ci sono tutti gli "<input..." che sono fastidiosi da togliere a mano. Per rendere più agile la procedura si può fare nel ...   read more
PDF
30/01/2014
Leggendo qua e là pare che uno dei metodi migliori per generare PDF rimanga FPDF (che probabilmente è la stessa che usavamo in ASP). Si trovano anche degli esempi già fatti, uno che magari è interessante guardare è questo: http://www.fpdf.org/en/script/script20.php e questo è il risultato: http://www.fpdf.org/en/script/ex20.pdf L'elenco completo degli esempi è ...   read more
PDO
02/01/2014
http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/ ...   read more
PHP cifratura simmetrica con chiave
20/01/2014
Per cifrare in modo reversibile una stringa, ho usato questa libreria che si appoggia su componenti che dovrebbero essere presenti in php (http://www.itnewb.com/tutorial/PHP-Encryption-Decryption-Using-the-MCrypt-Library-libmcrypt)  class cryptastic {     /** Encryption Procedure      *      *  @param mixed msg message/data      *  @param string k encryption key      *  @param ...   read more
PHPExcel autosize column width
28/08/2015
Se utilizziamo il componente PHPExcel per creare file Excel in php, può far comodo impostare la larghezza delle colonne in modo da adattarsi automaticamente al contenuto. Per fare ciò, una volta "compilato" tutto il file con le colonne e le righe necessarie, è sufficiente fare così: $content =  new PHPExcel(); $content->setActiveSheetIndex(0); /* * generazione righe e colonne [...] ...   read more
SEO su siti monopagina
10/04/2014
Alcuni link interessanti: http://blog.tagliaerbe.com/2014/02/seo-siti-monopagina.html https://support.google.com/webmasters/answer/1663744?hl=it https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history   ...   read more
Sort multidimensional array
09/10/2013
Questa funzione permette di ordinare un array multi-dimensionale secondo il nome di una colonna e specificando il verso Esempio: $arr = array_multiorderby($arr, "ordine asc"); /**  *  * @param array $data l'array da ordinare  * @param string $orderby nome della colonna e direzione (asc|desc)  * @param boolean $children_key specifica se ordinare anche i figli  * @return type  */ function ...   read more
Sostituire i caratteri acapo con il tag html
28/01/2014
Usare la funzione nativa di php nl2br($stringa) che sostituisce gli acapi con <br /> ...   read more
Sviluppo Laravel con Visual Studio Code
20/11/2018
ProceduraEseguire questo comando in una shell per installare le estensioni consigliate:code --install-extension bmewburn.vscode-intelephense-client --install-extension christian-kohler.path-intellisense --install-extension codingyu.laravel-goto-view --install-extension MehediDracula.php-namespace-resolver --install-extension onecentlin.laravel-blade --install-extension rafa-acioly.laravel-helpers ...   read more
Template chiamata Ajax Laravel
17/05/2018
Chiamata AJAX public function salva_conferma_doc(Request $request) { $out = array("stato" => "KO", "message" => "", "campi_errati" => array()); $model_name = $this->model_name; try{ $this->existing_obj = $existing_obj = $model_name::findOrFail($request->input('obj')); $id = $this->existing_obj->getKey(); }catch(\Exception $e){ ...   read more
Togliere gli spazi (inutili) in ogni elemento di un array
11/03/2015
Per rimuovere gli spazi a inizio/fine parola per ogni elemento dell'array senza ogni volta scorrerlo e ricomporlo, si può usare la funzione array_walk. Per farlo, definiamo innanzitutto la funzione che fa il trim (ma potrebbe fare qualunque altra cosa) function trim_array(&$value){ $value = trim($value); } Quindi invochiamola sul nostro array: $array_utente = new array("valore 1 ", " val ...   read more
Utilizzare dei font ad-hoc con dompdf
31/07/2015
Per usare dei font ad hoc (ad esempio dei Google Fonts) è necessario importarli correttamente in dompf: Innanzitutto scarichiamo una versione pulita di dompdf: git clone https://github.com/dompdf/dompdf.git cd dompdf git submodules init git submodules update Ora possiamo importare i font che ci servono go to your DOMPDF folder copy your font's as .ttf (TrueType Font) or .otf (OpenType Font) ...   read more
Validazione filename
06/02/2015
Prima di caricare un file è bene controllarne i caratteri. Da ora c'è in function la funzione apposita, che riporto comunque anche qui /** * restituisce il nome del file opportunamente modificato per escludere eventuali caratteri "pericolosi" (spazi compresi) * volendo e' possibile specificare un nuovo pattern con cui effettuare la sostituzione * * @param string $nome_file nome da formattare * ...   read more
Verificare l'esistenza di una variabile (o del suo valore)
14/03/2014
Visto che ogni tanto capita di avere a che fare con isset() e simili, questo è il comportamento di php (perlomeno dalla versione 5.3.5, ma auspicabilmente anche prima) Value of variable ($var) isset($var) empty($var) is_null($var) “” (an empty string) TRUE TRUE FALSE ” ” (space) TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE FALSE array() (an empty ...   read more