Visualizzazione post con etichetta php. Mostra tutti i post
Visualizzazione post con etichetta php. Mostra tutti i post

venerdì 2 marzo 2018

Leggi il post

Come contare un array bidimensionale (php)

L'altro giorno mi sono ritrovato ad affrontare un'esigenza particolare, ovvero quella di dover contare un array bidimensionale in php.
Nel mio caso infatti, per esigenze varie,  al posto di salvare i dati nel classico array, mi sono dovuto cimentare con gli array bidimensionali, salvando i dati in più strati, se così si può dire.

Questo comodo metodo però può avere anche un contro, infatti se si usa la count per contare gli elementi dell'array padre (come spiegato in questo post), il risultato finale non sarà il numero totale dei record presenti nell'array php, ma solo la somma degli elementi presenti nel livello indicato.

Vediamo quindi come calcolare il numero totale di record presenti in array a più dimensioni.


Come contare un array bidimensionale in php


Per poter ottenere il numero totale di record presenti in un array bidimensionale php, ci sono sostanzialmente due metodi.

Ecco il primo:

foreach ($array as $tipo) $totali+=count($tipo);

Ciclando l'array e contando i record presenti infatti, li si può salvare in una variabile numerica (opportunamente inizializzata prima del ciclo).
Ecco un esempio pratico:

<?php
    $array[0]["nome"]="Mario";
    $array[0]["cognome"]="Rossi";
    $array[1]["nome"]="Franco";
    $array[1]["cognome"]="Verdi";
    $totali=0;
    foreach ($array as $tipo) $totali+=count($tipo);
    echo $totali;
?>


Il secondo metodo per contare gli array bidimensionali invece, è ancora più ottimale, e consiste nella seguente sintassi:

$totali=array_sum(array_map("count",$array));

Con ancora meno codice infatti, ed usando le due funzioni php array_sum ed array_map, potremo ottenere il numero di record presenti in un array bidimensionale.
Ecco un esempio pratico:

<?php
    $array[0]["nome"]="Mario";
    $array[0]["cognome"]="Rossi";
    $array[1]["nome"]="Franco";
    $array[1]["cognome"]="Verdi";
    $totali=array_sum(array_map("count",$array));
    echo $totali;
?>


E con il conteggio degli array bidimensionali in php, per oggi è tutto :)

giovedì 22 febbraio 2018

Leggi il post

Come sapere quanti elementi contiene un array php

Gli array php sono utilissimi per gestire le variabili che possono assumere più valori.
In un'array infatti, è possibile inserire più valori, per poi richiamarli successivamente.
Pensiamo ad esempio ad un array che contiene i giorni della settimana, o ad uno in cui sono salvati l'elenco dei mesi.

Il concetto base che deve passare è quello che la lunghezza di un array equivale al numero di elementi in esso contenuto.
Vediamo subito come ottenere questo dato.


Come sapere quanti elementi contiene un array in php


La sintassi per scoprire la lunghezza di un array php è molto semplice, ed è la seguente:

COUNT($array)

La funzione php count infatti, restituisce banalmente la lunghezza di un array (ma non solo), e quindi ci fa capire quanti elementi questo contiene.

Vediamo un esempio pratico con i sopra citati giorni della settimana:

<?php
    $mesi=array("Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica");
    echo count($mesi);
?>


Come si può bene immaginare, il risultato di questo conteggio è 7, che guarda caso corrisponde ai giorni della settimana :p

Inutile dire che sapere come ricavare la lunghezza di un array php è di vitale importanza per svolgere diverse operazioni su di esso, come ad esempio poterlo sfogliare.
Anche se a dire il vero è anche possibile sfogliare un array anche senza conoscerne la lunghezza, come spiegato in questo post.

mercoledì 21 febbraio 2018

Leggi il post

Come usare la funzione SPLIT PHP

L'altro giorno vi ho parlato della potentissima funzione php explode, oggi invece vi parlerò della sua principale rivale, ovvero la php split.
Anche questa funzione è ovviamente una delle più utili di questo linguaggio, quindi imparare ad usarla, o quantomeno sapere della sua esistenza, è d'obbligo.

Per citare testualmente il sacro php, la funzione split suddivide una stringa in una matrice utilizzando le espressioni regolari... vediamo come.


Come usare la funzione SPLIT PHP


Ecco la sintassi di base di questa funzione:

list($risultato1,$risultato2,$risultato3)=split($limitiatore-o-espressione-regolare,$testo-da-splittare);

Penso che scritta così già si capisca perfettamente come funziona, ad ogni modo, ecco un esempio più pratico.
Vediamo infatti come splittare una data nelle variabili giorno mese, anno, avendo una variabile data divisa da un delimitatore che può essere la classica barra /.
Ecco cosa dovremmo scrivere:

<?
$data = "21/02/2018";
list($giorno,$mese,$anno)=split("/",$data);
echo "Mese: $mese; Giorno: $giorno; Anno: $anno<br>\n";
?>


Se poi volessimo esagerare ed avere una funzione che estrapola quei valori per le date in vario formato, che ad esempio comprendano i seguenti separatori (/ - .) ecco cosa dovremmo scrivere:

<?
$data = "21-02-2018";
list($giorno,$mese,$anno)=split("[/.-]",$data);
echo "Mese: $mese; Giorno: $giorno; Anno: $anno<br>\n";
?>


Grazie alle espressioni regolari infatti, possiamo usare la split in maniera ancora più efficace.
A questo proposito poi, potrebbe essere una buona idea anche usare la preg_split(), che si dice che sia ancora più performante dell'ormai un po' datata split php.

E con il php in pillole, per oggi è tutto :)

lunedì 19 febbraio 2018

Leggi il post

Come splittare una variabile in php con explode

Esiste una funzione php chiamata explode, sto parlando di quella funzione che consente di splittare una variabile in più parti, dato un determinato carattere jolly che fa da separatore.
Prendiamo ad esempio un testo che contiene diverse virgole. Se volessimo dividere questo testo in più parti e salvare in un array ogni parola compresa tra le virgole, dovremmo proprio usare la funzione php explode.

Vediamo subito come fare.


Come splittare una variabile in php con explode


Ecco la sintassi generale per usare questa potente funzione php:

$array=explode($separatore,$stringa);

Tornando ad un esempio pratico, se ci troviamo ad avere una lista di nomi separati da virgola, per metterli tutti in un'array e per pescarli singolarmente, dovremmo scrivere qualcosa del genere:
<?
$elenco="mario,giovanni,antonio,claudio";
$nomi=explode(",",$elenco);
echo $nomi[0];
?>


In questo semplice esempio abbiamo quindi salvato nell'array nomi, l'elenco dei nomi delimitati da virgola, presenti nella variabile elenco.
Una volta fatto ciò, possiamo accedere singolarmente ad ogni elemento dell'array, passando il numero dell'indice che ci interessa, oppure sfogliare l'intero array.

Explode è un'ottima funzione php, che sicuramente prima o poi capita di usare.
A volte infatti, per comodità può essere necessario salvare i dati presenti in un db o in qualche altra parte, tutti concatenati in una stringa che contiene uno specifico delimitatore.
Ecco che poi grazie all'explode php si può andare a recuperare in qualsiasi momento questi dati.

giovedì 7 dicembre 2017

Leggi il post

Mettere la prima lettera maiuscola in PHP

Ammettiamo di avere a che fare con un elenco di nominativi salvati in un database in maniera poco precisa.
Sto parlando di nomi e cognomi scritti tutti in minuscolo ad esempio, o anche nomi di città senza maiuscole.
Ecco, in questi casi il php ci viene nuovamente in aiuto, grazie ad una comodissima funzione per mettere la prima lettera in maiuscolo tramite codice.

Vediamo subito come fare.


Come mettere la prima lettera maiuscola in PHP


Per poter capitalizzare solo la prima lettera di una parola in php, ovvero per poter mettere la prima lettera maiuscola tramite codice, basta utilizzare la seguente sintassi:

<?php
    $testo="mario";
    $testo=ucfirst($testo);
    echo $testo;
?>


La funzione php ucfirst infatti, si occupa di rendere maiuscola la prima lettera di una parola o di una frase.
Solo la prima lettera però, tutte le altre verranno ignorate.

Se invece volessimo mettere maiuscole tutte le prime lettere di una frase, dovremmo usare un'altra funzione php, ecco quale:

<?php
    $testo="mario il più grande del mondo";
    $testo=ucwords($testo);
    echo $testo;
?>


Grazie infatti alla funzione php ucwords, renderemo maiuscole tutte le iniziali di una frase.

Se poi siamo davanti a nominativi scritti tutti in maiuscolo, ovviamente non possiamo rimediare solo con queste due funzioni.
In questo caso possiamo però prima trasformare tutto in minuscolo, e poi capitalizzare solo la prima lettera.
Se non sai come fare, leggiti questo mio post sulla strtolower php.

Ed anche per oggi è tutto.
Ancora una volta il sacro php dimostra di avere delle funzioni per le stringhe davvero potenti ed efficaci.

venerdì 1 dicembre 2017

Leggi il post

Come sapere la lunghezza di una stringa in PHP

La desiderata del giorno è molto semplice, ovvero scoprire quanto è lunga una stringa in php.
Stiamo dunque parlando nuovamente delle utilissimi funzioni sulle stringhe in php, le quali ci consentono di fare praticamente tutto con le variabili di tipo stringha, che sia testo o numero.

Scoprire la lunghezza di una stringa in php è una cosa che può tornare utile in diversi casi.
Prendiamo ad esempio il caso in cui si deve salvare un dato nel database, un dato che arriva da una form.
Certo, con il sacro javascript è possibile fare controlli sulla lunghezza di un testo lato client (leggi qui se non sai come fare), tuttavia, il js potrebbe anche essere disattivato, quindi è cosa buona e giusta fare questi controlli anche lato server, per non incorrere in qualche spiacevole errore di database.


Come sapere la lunghezza di una stringa in PHP


Veniamo subito al dunque, la funzione php per sapere quanto è lunga una variabile di testo (o una stringa in generale, che sia testo o non), è la seguente:

strlen($stringa);

La potentissima strlen php infatti, riporterà come risultato un numero, un numero corrispondente all'esatta lunghezza del testo contenuto nella variabile passata.
Ovviamente è anche possibile passare direttamente alla funzione anche il testo da controllare, e fare dei controlli con delle if, come riportato in questo esempio:

<?php
    if(strlen("pippo")>4) echo "la parola pippo contiene più di quattro lettere";
?>

Esempio banale lo so, ma rende perfettamente l'idea del funzionamento di questa funzione php per controllare la lunghezza di una stringa.

Bene, per oggi è tutto.
Alla prossima micro lezione di php :)

domenica 26 novembre 2017

Leggi il post

Scoprire url di provenienza visitatore sito (php)

Se all'alba del 2018 ancora non usi google analytics e vuoi sapere lo stesso la provenienza di un visitatore del tuo sito internet, allora il php può sicuramente rispondere a questa tua curiosità.
Ovviamente sto ironizzando, dato che scoprire l'indirizzo di provenienza di un navigatore che giunge sul tuo sito web può avere diversi utilizzi pratici che vanno ben oltre alle mere statistiche.
Ad esempio, potresti voler salvarti in una tabella mysql tutti gli indirizzi di provenienza ad una tua specifica pagina web, per poi fare dei conteggi mirati.
Oppure, un esempio ben più orientalo alla sicurezza informatica, è quello di bloccare l'accesso a dei web script (es. api php / webservices), a chi non proviene da un determinato url web.

Comunque, a parte tutte queste premesse, vediamo subito come sapere l'indirizzo di provenienza dei visitatori del nostro sito web, tramite il php.


Come scoprire l'url di provenienza di un visitatore del tuo sito in php


Per rispondere alle classiche domande: "da che pagina arrivano le visite al mio sito internet?" o "Quali siti internet hanno linkato il mio?" il php ci offre una comoda funzione:

$_SERVER["HTTP_REFERER"];

Stampando a video con un bel echo ciò che è contenuto dentro la variabile server HTTP_REFERER infatti, si otterrà di fatto l'url di provenienza del visitatore.

Questa funzione php inoltre, è talmente potente da poter recuperare anche i parametri passati via GET, ovvero tutte quelle variabili presenti nell'indirizzo della pagina, ovvero ad esempio se arrivo da pagina.html?var1=1&var2=2, la http_referer php restituirà a video tutto l'indirizzo web passato, e quindi di fatto anche le variabili var1 e var2 con rispettivi contenuti (sempre riferito a questo esempio).

Tutto ciò è anche molto utile se per caso fate una pagina web con login con le sessioni.
Se ad esempio passate un url protetto da password a qualcuno, e questo indirizzo riconosce che l'utente è sloggato e lo rimanda alla pagina di login, nella suddetta pagina potrete usare la potentissima $_SERVER["HTTP_REFERER"] php per recuperare l'intero indirizzo di provenienza, compreso di eventuali id di contenuto specifici.
Spetterà poi a voi gestire la cosa, salvando questo url di provenienza dentro ad una variabile da passare come campo hidden del form di login... più facile a farsi che dirsi :)

Bene, è tutto.
Spero che questo breve tutorial su come scoprire da dove proviene un utente che approda sul vostro sito web tramite il php, vi sia stato utile nonostante la presenza del precisissimo google analytics :p
Alla prossima!