PHP snippet: una funzione per disabilitare il plugin di skype

ATTENZIONE! Il post ha più di 2 anni e le informazioni contenute potrebbero essere obsolete (ad esempio a causa di un aggiornamento di versione rispetto agli elementi descritti o links modificati da siti esterni).

Il plugin di skype per i browsers può essere molto utile ma per chi sviluppa siti web può essere fastidioso in quanto modifica il layout della pagina anche per elementi che non sono numeri di telefono. In rete ci sono alcune soluzioni che utilizzano i meta tags o commenti html particolari ma non sono al 100% funzionanti. In questo post verrà proposta una soluzione alternativa. Per essere sicuri che il plugin non "rovini" i nostro sito basta far credere al plugin che non si tratti effettivamente di numeri di telefono. Mentre +39 0431 25154 verrà interpretato come un numero telefonico, ciò non accadrà se scriviamo +39_0431_2515_4. Dato che skype fa la ricerca direttamente sul codice HTML sarà sufficiente nascondere tramite le proprietà css i caratteri _ (underscore) in questo modo:

+39<span style="display: none;">_</span>
0431<span style="display: none;">_</span>
2515<span style="display: none;">_</span>

E il risulatato sarà: +39_ 0431_ 2515_ Per automatizzare il tutto è possibile utilizzare la seguente funzione:

 
/**
* Restituisce una stringa in modo che il plugin di Skype non modifichi
* il layout.
*
* @param $text Stringa da "proteggere" contro il plugin.
* @param $echo_output Indica se eseguire un echo o restituire il la stringa.
*/
function skypeDisable($text, $echo_output = true){
    //stringa inserita per "disabilitare" il plugin
    $str_disabler = '<span style="display: none;">_</span>';
    $str_array = str_split($text);
 
    $output = '';
    //itera i caratteri della stringa
    for($i=0;$i<count($str_array);$i++){
        //ogni 4 caratteri inserisce la stringa $str_disabler
        if ($i%4==0){
            $output.=$str_disabler;
        }
        $output.=$str_array[$i];
    }
    //in base all'opzione scelta esegue
    //l'output o restituisce il valore
    if($echo_output){
        echo $output;
    }else{
        return $output;
    }
}

 

Server dedicato

Condividi questo post


Commenti