[zf] forcer la connexion mysql en utf8

une petite modification a apporter au Bootstrap.php d'un projet zend framework et plus besoin de faire des utf8_encore dans tous les sens sur des données récupérées en base (ou juste pour être tranquille)

public function  __construct($application) {
        parent::__construct($application);

        $this->getPluginResource('db')->getDbAdapter()->getConnection()->exec("SET NAMES 'utf8'");
    }

fonction de nettoyage de chaine de caractères

voici une fonction qui permet de nettaoyer une chaine de tout ce qui n'est pas alphanumérique, les caractères accentués, les blancs, etc.

function slugify($text) {
        $alphabet = array(
            'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A',
            'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I',
            'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U',
            'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss','à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a',
            'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i',
            'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u',
            'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f'
        );

        if(empty($text)) return 'n-a';

        $text = str_replace('&', '-and-', $text);
        $text = strtr ($text, $alphabet);

        // replace all non letters or digits by -
        $text = preg_replace('/\W+/', '-', $text);

        // trim and lowercase
        $text = strtolower(trim($text, '-'));

        return $text;
    }

Tags:

[ZF] fonction de log

voici une fonction que j'utilise dans zend framework pour enregistrer mes logs (dans les batchs surtout)

function log($message, $prefix = null, $suffix = null, $file = null)
    {
        $logs_dir = realpath(APPLICATION_PATH . '/../logs');

        $file = $logs_dir . '/fichier_de_log.log';

        $redacteur = new Zend_Log_Writer_Stream($file);
        $formatter = new Zend_Log_Formatter_Simple("[%timestamp%] :\t%message%" . PHP_EOL);
        $redacteur->setFormatter($formatter);
        $logger = new Zend_Log($redacteur);

        $logger->info($prefix . $message . $suffix);
    }

Obtenir la vraie adresse IP d'un visiteur

voici une fonction qui retourne l'adresse IP finale de l'utilisateur, celle de son réseau local (souvent en 192.168.X.X ou 10.0.X.X) si pas disponible, la fonction retourne l'adresse IP publique

function getRealIp()
{
     $ip = null;
     if(!empty($_SERVER['HTTP_CLIENT_IP'])){
          $ip = $_SERVER['HTTP_CLIENT_IP'];
     }
     if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
          $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
     }
     return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}

Tags:

[.htaccess] protéger un répertoire par htaccess tout en laissant passer certaines urls

ici on va voir comment protéger un site (ou répertoire) par htaccess, en filtrant sur une (ou plusieurs) adresse IP pour laquelle l'accès sera autorisé sans demande de mot de passe

AuthName "Identification"
AuthUserFile /var/www/.htpasswd
AuthType Basic
Order deny,allow
deny from all

allow from ADRESSE_IP_A_AUTORISER

Require valid-user
Satisfy any

Tags:

Pages

Subscribe to www.snippets.fr RSS