Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/w41258/domains/chiappucci.it/public_html/ServerScript/ban-ip/class.BanIp.php on line 15
PHP | Guido Chiappucci's Blog - Part 2

Guido Chiappucci's Blog

Archive for the ‘PHP’ tag

Php functions you (probably) never use

without comments

Leggendo qua e la ho trovato un articolo molto curioso e allo stesso tempo interessante dove vengono descritte una serie di funzioni php poco comuni e che probabilmente non vengono quasi mai utilizzate.

L’articolo in questione si trova in questo blog all’indirizzo:
http://infinity-infinity.com/2009/07/10-php-functions-you-probably-never-use/

Buona lettura!

Written by Guido

gennaio 18th, 2010 at 12:54 pm

Posted in Internet,PHP

Tagged with

iBlog – Ilia Alshanetsky

without comments

Oggi voglio segnalare il blog di Ilia Alshanetsky, sito che seguo da un po’ dove ho trovato numerose informazioni su come utilizzare al meglio PHP, in particolare, oltre alla consueta sezione dedicata agli articoli, ho trovato molto utile la sezione Talks da dove si possono scaricare delle utilissime slide.

Buona lettura.

Written by Guido

luglio 17th, 2009 at 5:34 pm

Posted in Internet,PHP

Tagged with ,

PHP performance tips by Google

without comments

Written by Guido

luglio 6th, 2009 at 11:36 am

Posted in Internet,PHP

Tagged with ,

PHP: Eseguire codice da Shell

without comments

Qualche giorno fa dovevo eseguire delle operazioni lato server e per curiosità ho provato a confezionare degli script eseguibili da shell scritti in php e devo dire che  la cosa non è affatto male.

Le operazioni da seguire per lanciare degli script php da shell sono molto semplici, prima di tutto bisogna sapere dove è installato php sul server in maniera da dichiararne il percorso a monte dello script, solitamente il percorso è /usr/bin/php ma se non si è sicuri basta eseguire il comando which php e si saprà dove è installato.
Quindi la prima riga del nostro file deve essere così:

#!/usr/bin/php

Successivamente dobbiamo rendere eseguibile il nostro script settando i permessi sul file:

chmod +x nomescript.php.

A questo punto il nostro file è pronto per essere eseguito da shell:

./nomescript.php.

Se il nostro script fose come questo:

1
2
3
4
#!/usr/bin/php
<?php
echo 'Ciao mondo';
?>

nella finestra del terminale verrà stampato:

Ciao mondo

Written by Guido

maggio 12th, 2009 at 11:12 pm

Posted in Linux,PHP

Tagged with , , ,

PHP: Only variables should be passed by reference

without comments

Oggi mentre stavo sviluppando una nuova applicazione su Server PHP5 ho riscontrato il seguente errore:

Strict Standards: Only variables should be passed by reference

La parte di codice incriminata, già utilizzata più volte su PHP4, era la seguente:

return end(explode(".", $str));

Insomma, documentandomi ho risolto così:

$ext = explode(".", $str);
$ext = $ext[count($ext)-1];
return $ext;

:-)

Written by Guido

aprile 28th, 2009 at 7:28 pm

Posted in PHP

Tagged with

PHP: con il 5 leggere l’xml è davvero simple

without comments

Purtroppo per questioni di infrastuttura tecnica non sto lavorando da molto su ambiente PHP5 ma ogni volta trovo qualcosina in più che mi rende le cose più facili, tra le ultime la lettura dei file xml.
Infatti dalla versione 5 è stata introdotta nel php la libreria SimpleXML che offrendo un’interfaccia ad oggetti rende il lavoro di lettura veramente semplice.

Supponiamo di leggere il file anagrafica.xml riportato di seguito:

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0"?>
<anagrafica>
<record>
<NOME><![CDATA[Mario]]></NOME>
<COGNOME><![CDATA[Bianchi]]></COGNOME>
</record>
<record>
<NOME><![CDATA[Paolo]]></NOME>
<COGNOME><![CDATA[Rossi]]></COGNOME>
</record>
</anagrafica>

Con poche righe di codice si ha accesso ai dati.

1
2
3
4
5
6
7
8
9
<?php
$doc = simplexml_load_file("anagrafica.xml");
$anagrafica = $doc->record;
foreach($anagrafica as $dati){
    echo "Nome: ".$dati->NOME."<br>\n";
    echo "Cognome: ".$dati->COGNOME."<br>\n";
    echo "<hr>\n";
}
?>

Come si vede la struttura ad oggetti è molto semplice, facilita molto il lavoro ed il codice risulta molto pulito.

Written by Guido

aprile 6th, 2009 at 2:15 pm

Posted in PHP

Tagged with ,

PHP: Salvare un array in un database

without comments

Quotidianamente durante la scrittura dei progetti faccio un grande uso di array e molte volte ho pensato che sarebbe utilie per vari scopi salvare il contenuto di un array in un database.
Con php questa operazione è molto semplice, basta utilizzare la funzione serialize().

Serialize “traduce” in stringa il contenuto dell’array così da poterlo salvare in un campo di una tabella, successivamente, per il recupero dei dati e la “ritrasformazione” in array, bisogna utilizzare la funzione unserialize().

In pratica l’ipotetico array $var_array=array(‘pippo’,'pluto’,'paperino’) verrebbe codificato in questa maniera:

a:3:{i:0;s:5:"pippo";i:1;s:5:"pluto";i:2;s:8:"paperino";}

Di seguito è mostrato del codice di esempio:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
/* 
* Trasformo l'array in stringa 
* Per evitare errori di sql codifico la stringa in base64
*/
$var_array = array('pippo','pluto','paperino');
$array_to_save = base64_encode( serialize($var_array) );
 
/* Salvataggio nel database */
$sql = "INSERT INTO TABELLA (CAMPO) VALUES ('".$array_to_save."')";
mysql_result($sql,$dblink);
 
/* Recupero dell'array dal database */
$sql = "SELECT CAMPO FROM TABELLA WHERE ID = ".$id;
$result = mysql_result($sql,$dblink);
$row = mysql_fetch_assoc($result);
$var_array = unserialize( base64_decode($row[CAMPO]) );
 
?>

Written by Guido

febbraio 11th, 2009 at 4:59 pm

Posted in MySql,PHP

Tagged with , , , ,

PHP: Un metodo veloce e semplice per leggere file xml

with 2 comments

Ecco qui di seguito una piccola funzione che vi permettarà di leggere in maniera veloce il contenuto dei file xml. Questo script restituisce un array contenente i dati del file xml, sarà vostra cura elaborare questo array adattandolo ai vostri utilizzi.

<?php
function readXml($file){
    $xml_parser = xml_parser_create();
    if(!($fp = fopen($file, "r"))){ die("Impossibile aprire il file Xml"); }
    $data = fread($fp, filesize($file)+1);
    fclose($fp);
    xml_parse_into_struct($xml_parser, $data, $vals, $index);
    xml_parser_free($xml_parser);
    return $vals;
}
?>

Written by Guido

dicembre 23rd, 2008 at 11:17 am

Posted in PHP

Tagged with ,

PHP: Leggere i Metadata delle fotografie

with one comment

In questi giorni stavo analizzando la fattibilità di realizzazione di un archivio fotografico collegato ad un motore di ricerca in maniera da cercare all’interno dei metadata delle immagini, cercando su Google ho trovato un articolo molto interessante che in pratica fa proprio al mio caso e spiega nel dettaglio come poter leggere i metadata con php. Non male…!

Di seguito il link all’articolo:
http://devzone.zend.com/article/4025-Reading-and-Writing-MP3-and-Photo-Metadata-with-PECL-

Written by Guido

novembre 21st, 2008 at 5:27 pm

Posted in PHP

Tagged with , , ,

PHP: Ftp upload

without comments

Ecco un esempio di come si può fare un upload ftp con Php. La seguente funzione trasferisce mediante protocollo ftp il contenuto di una cartella verso uno spazio ftp.
La proprietà $setting della funzione è un array che deve contenere i seguenti dati:

  • $setting['Host'] -> Host a cui collegarsi, ad esempio un indirizzo ip;
  • $setting['User'] -> Nome utente per la connessione ftp
  • $setting['Pass'] -> Password per la connessione ftp
  • $setting['RemoteFolder'] -> Percorso remoto su cui trasferire i file, ad esempio “/Upload/”
  • $setting['DeleteRemoteFiles'] -> Se viene settato con valore 1, prima del caricamento vengono cancellati tutti i files presenti nel $setting['RemoteFolder']
  • $setting['LocalFolder'] -> Percorso dove recuperare i files da trasferire, ad esempio “/home/File_da_trasferire/”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
function FtpUpload($setting){
 
    if(!$conn_id = @ftp_connect($setting['Host'])){ 
        return false; 
    }
    if(!$login_result = @ftp_login($conn_id,$setting['User'],$setting['Pass'])){
        ftp_quit($conn_id);
        return false;
    }
    if($setting['DeleteRemoteFiles'] == 1){
        if($contents = ftp_nlist($conn_id,$setting['RemoteFolder'])){
            foreach($contents as $v){
                if($v!="." and $v!=".."){
                    if(@ftp_delete($conn_id,$v)){
                        $ndelete++;
                    }else{
                        $faildelete.="Errore nella rimozione del file remoto: ".$v."<br />\n";                        
                    }
                }
            }
        }else{
            ftp_quit($conn_id);
            return false;
        }
    }
 
    if($handle = opendir($setting['LocalFolder'])){
        while(($file = readdir($handle)) !== false){ 
    	    if($file != "." and $file != ".."){
                if(@ftp_put($conn_id,$setting['RemoteFolder'].$file,$setting['LocalFolder'].$file,FTP_BINARY)){
                    $nput++;
                }else{
                    $failput.="Errore nell'upload del file: ".$setting['LocalFolder'].$file."<br />\n";
                }
    	    }
    	}
    }else{
        ftp_quit($conn_id);
        return false;
    }
 
    ftp_quit($conn_id);
 
    $return['nput']         = $nput;
    $return['ndelete']      = $ndelete;
    $return['failput']      = $failput;
    $return['faildelete']   = $faildelete;
 
    return $return;
 
}
 
$setting['Host'] = '';
$setting['User'] = '';
$setting['Pass'] = '';
$setting['RemoteFolder'] = '';
$setting['DeleteRemoteFiles'] = '0';
$setting['LocalFolder'] = '';
 
if($upload = FtpUpload($setting)){
    print_r($upload);
}else{ echo "Si è verificato un errore"; }
?>

Written by Guido

settembre 10th, 2008 at 3:09 pm

Posted in PHP

Tagged with ,