- Home
- Categorie
- Coding e Sistemistica
- PHP
- FAQ - Php
-
**
Quali sono gli operatori di confronto PHP?**
Gli operatori di confronto PHP sono i seguenti:
-
Quali sono gli operatori di confronto MySql?
Gli operatori di confronto MySql sono i seguenti:
-
Come posso ottenere l'orario attuale?
Puoi procedere in vari modi, uno dei possibili metodi è il seguente:
prelevare il timestamp del server ove si esegue lo script tramite la funzione time() e quindi formattare questo valore tramite la funzione date() per ottenere la data secondo le nostre esigenze:
[php]$data=time();
$data=date('Y-m-d H:i:s', $data);
echo $data; // risultato: 2008-02-20 19:13:00[/php]Questo metodo pero' restituisce, come detto, l'orario del server dove risiede lo script, quindi se questo si trovasse all'estero e con un fuso orario diverso dal nostro dovremmo elaborare il valore ottenuto tramite time() aggiungendo o sottraendo il valore in secondi dei fusi orari che ci separano da quello del server.
Portando un esempio, diciamo di lavorare su un server che si trova in Inghilterra, che, come sappiamo, ha un'ora di fuso orario dall'Italia, in meno. Per ottenere l'ora italiana prelevando l'orario del server inglese procederemo nel seguente modo:
[php]$data=time() + 3600; // aggiungo il valore in secondi equivalente ad un'ora
$data=date('Y-m-d H:i:s', $data);
echo $data; // risultato: 2008-02-20 20:13:00[/php]
-
**
Cos'è il timestamp?**
Il timestamp, o meglio l'UNIX timestamp, è un intero lungo il cui valore è il numero di secondi che separa la data/orario specificate dalla UNIX Epoch che equivale al 01 Gennaio 1970 00:00:00.
-
A cosa serve il simbolo @?
@ è un operatore di controllo degli errori che si utilizza come prefisso ad un'espressione di PHP per far ignorare eventuali Warning o messaggi di errore che la stessa espressione potrebbe generare.
Qualora fosse abilitata la track_errors, eventuali messaggi di errore e Warning verranno salvati nella variabile globale $php_errormsg, quest'ultima, essendo una variabile e non un array, conterrà ovviamente l'ultimo warning generato.
Quì di seguito alcuni esempi classici di utilizzo dell'operatore @:
[php]$handle = fopen ( $file, 'a+'); // se non va a buon fine restituisce un E_WARNING
$handle = @fopen ( $file, 'a+'); // in questo modo non verrà restituito alcun messaggio di errore$query = @mysql_query ($sql, $conn);
$value = @$array[$id]; // se l'indice $id non esiste non verranno restituiti messaggi di errore[/php]Come detto l'utilizzo di questo operatore è specifico per espressioni del linguaggio, ovvero tutto cio' che puo' restituire un valore o una risorsa da utilizzare(Es. una query).
-
Cosa sono i Riferimenti?
I riferimenti, sono metodi speciali che PHP usa per gestire le variabili e le interazioni tra queste.
Prendiamo in esempio due variabili $a e $b:[php]
$b = 5;
$a = $b;echo $a; //Ris: 5
echo $b; //Ris: 5
[/php]$a ed $b sono due variabili indipendenti, in questo caso, entrambe assumono il valore 5.
Se durante l'esecuzione modifico il valore di $a e lo pongo uguale a 6 viene:[php]
$b = 5;
$a = $b;echo $a; //Ris: 5
echo $b; //Ris: 5$a = 6;
echo $a; //Ris: 6
echo $b; //Ris: 5
[/php]Si nota subito che le due variabile anche se vengono ugualiate e contengono gli stessi valori ($a = $b) sono due oggetti indipendenti.
Questo è uno dei metodi più semplici utilizzati per la gestione delle variabili in PHP.
Con l'uso dei riferimenti, invece non succede più così.
Quando si precende il nome di una variabile con il simbolo &, non si ottiene più il valore della variabile, ma un riferimento ad essa, l'equivalente dei puntatori in C.
Con i riferimenti, una variabile diventa un alias di un'altra variabile ($a è l'alias di $b, oppure $a punta a $b).[php]
$b = 5;
$a =& $b; //Altra Sintassi: $a = & $b; oppure $a = &$b;
[/php]Ora le due variabili $a e $b condividono lo stesso spazio di memoria, quindi un cambiamento al valore dell'una si riflette sul valore dell'altra.
[php]
$b = 5;
$a =& $b;echo $a; //Ris: 5
echo $b; //Ris: 5$a = 10;
echo $a; //Ris: 10
echo $b; //Ris: 10
[/php]Il concetto di fondo è quello di chiamare lo stesso oggetto variabile con due nomi differenti.
Per eliminire un alias di un oggetto, si utilizza la funzione unset();
Avendo definito più nomi ad un oggetto, con la funzione unset(); non si perde il dato, ma solo un puntatore, quindi se le variabile $a e $b puntano allo stesso oggetto, se "distruggo" $b, mi rimane sempre $a per recuperare l'oggetto desiderato.[php]
$b = 5;
$a =& $b;echo $a; //Ris: 5
echo $b; //Ris: 5$a = 10;
echo $a; //Ris: 10
echo $b; //Ris: 10unset($b);
echo $a; //Ris: 10
echo $b; //Ris: VARIABILE NON DEFINITA
[/php]L'utilità dei riferimenti si vede nell'utilizzo di funzioni.
Passare un riferimento di una variabile come argomento della funzione è molto più veloce e permette di allocare meno spazio in memoria rispetto alla normale copia della variabile.[php]
function funzione(&$valore)
{
$valore += 5;
}$a = 10;
funzione($a);echo $a; //Ris: 15
[/php]Di conseguenza, anche una funzione può restituire un puntatore ad una variabile.
[php]
function &funzione()
{
static $valore = 0; //STATIC: $valore ha visibilità (può essere usata) solo all'interno della funzione
$valore++;
return $valore;
}echo funzione(); //Ris: 1
echo funzione(); //Ris: 2
echo funzione(); //Ris: 3$a =& funzione();
$a = 10;echo funzione(); //Ris: 11
[/php]In conclusione, l'utilizzo dei riferimenti porta benefici come la riduzione della memoria utilizzata dal server, in particolare nell'uso di grandi strutture dati come gli array.
-
Come posso verificare la presenza di un parola, o di una stringa, all'interno di un'altra stringa?
Un metodo molto immediato è quello di utilizzare la funzione strstr();.
Questa funzione restituirà FALSE qualora non venisse trovata alcuna occorrenza della parola, o stringa, ricercata.
[php]<?
$string = "ForumGT";
$search = "GT";
if (strstr ($string, $search))
{
// eseguo le istruzioni
}
else
{
echo "Nessuna occorrenza di $search è contenuta nella stringa";
}
?>[/php]
La suddetta funzione è, pero', case sensitive, pertanto se cercassimo all'interno della nostra stringa "ForumGT", la stringa "gt", otterremo FALSE come risultato. Per ovviare a questo "problema" possiamo ricorrere all'equivalente non case sensitive di questa funzione, ovvero stristr();
-
Come posso trasformare una determinata parola, o stringa, in un link**?**
Puoi utilizzare la funzione str_replace(); per sostituire la parola cercata con il relativo link.
[php]<?
$string = "Benvenuto nel ForumGT";
$replace = "<a href="http://www.giorgiotave.it/forum/problemi-col-forumgt/45923-ciao-e-benvenuto-nel-forum-gt.html">ForumGT</a>";
$string = str_replace ("ForumGT", $replace, $string);
echo $string; // risultato HTML: Benvenuto nel <a href="http://www.giorgiotave.it/forum/problemi-col-forumgt/45923-ciao-e-benvenuto-nel-forum-gt.html">ForumGT</a>
?>[/php]che tradotto in visualizzazione sarà:Benvenuto nel ForumGT
Essendo case sensitive la nostra funzione ovviamente non riconoscerà la stringa "forumgt" all'interno di $string. Per ovviare a questo possiamo utilizzare l'equivalente *non case sensitive *della funzione, ovvero str_ireplace();.
-
Come posso creare un Database nel mio Database Server?
Le strade percorribili sono diverse:- Tramite creazione di uno script PHP*
- Tramite l'input box SQL del phpMyAdmin
- Tramite utilizzo della procedura guidata del phpMyAdmin
Creazione tramite script PHP*
Nella nostra pagina PHP andremo per prima cosa ad inserire i nostri dati di connessione al Database Server e quindi i comandi relativi alla creazione del Database specificando il charset che dovrà utilizzare il Db stesso di default:
[LEFT][PHP]<?php
$connection = @mysql_connect($db_host,$db_user,$db_pass) or die ("Connessione al server non stabilita");
$sql = "CREATE DATABASEnuovo_database
DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
$query = @mysql_query($sql) or die (mysql_error());
@mysql_close($connection);
?>[/PHP][/LEFT]
Ci basterà richiamare la presente pagina dal browser per poter creare il nostro nuovo_database.
*molti hosting, per motivi di sicurezza, non permettono la creazione/cancellazione/modifica di Database o tabelle tramite comandi esterni o script.Tramite l'input box "SQL" del phpMyAdmin
Una volta effettuato l'accesso al nostro phpMyAdmin abbiamo la possibilità (in qualunque posizione del Database Server ci troviamo) di immettere direttamente la nostra istruzione SQL di creazione del Database nella input box prevista dal programma.
Basterà cliccare sulla linguetta SQLper far apparire la textarea dove andremo ad inserire la nostra istruzione SQL:
Limitandoci infine a cliccare su "Esegui" il phpMyAdmin creerà il nostro nuovo_database dandoci conferma dell'avvenuta creazione:
Tramite utilizzo procedura guidata del phpMyAdmin
Una volta effettuato l'accesso al nostro phpMyAdmin ci si presenterà immediatamente nella Home la possibilità di creare il nostro nuovo_database tramite l'apposito pannello:Basterà indicare il nome del Database che vogliamo creare, il charset che questo utilizzerà come default ed infine cliccare su Crea.
Similarmente al caso precedente il pannello ci restituirà la conferma dell'avvenuta creazione:
-
Come posso eliminare un Database dal mio Database Server?
Le strade percorribili sono diverse:- Tramite creazione di uno script PHP*
- Tramite l'input box SQL del phpMyAdmin
- Tramite utilizzo della funzione già prevista dal phpMyAdmin
Cancellazione tramite script PHP*
Nella nostra pagina PHP andremo per prima cosa ad inserire i nostri dati di connessione al Database Server e quindi i comandi relativi alla cancellazione del Database:
[LEFT][PHP]<?php
$connection = @mysql_connect($db_host,$db_user,$db_pass) or die ("Connessione al server non stabilita");
$sql = "DROP DATABASEnuovo_database
";
$query = @mysql_query($sql) or die (mysql_error());
@mysql_close($connection);
?>[/PHP][/LEFT]Ci basterà richiamare la presente pagina dal browser per poter eliminare definitivamente il nostro Database.
*molti hosting, per motivi di sicurezza, non permettono la creazione/cancellazione/modifica di Database o tabella tramite comandi esterni o script.Tramite input box SQL del phpMyAdmin
Una volta effettuato l'accesso al nostro phpMyAdmin abbiamo la possibilità (in qualunque posizione del Database Server ci troviamo) di immettere direttamente la nostra istruzione SQL di cancellazione del Database nella input box prevista dal programma.
Basterà cliccare sulla linguetta SQLper far apparire la nostra textarea dove andremo ad inserire la nostra istruzione SQL:
Limitandoci infine a cliccare su "Esegui" il phpMyAdmin ci chiederà conferma dell'operazione e quindi cancellerà il nostro nuovo_database.
Tramite utilizzo procedura guidata del phpMyAdmin
Accediamo al nostro phpMyAdmin e selezioniamo il Database che vogliamo eliminare:A questo punto basterà cliccare sulla linguetta "Elimina":
per poter procedere alla cancellazione del Database.
N.B. La cancellazione di un Database implica anche la cancellazione di tutte le tabelle in esso contenute.