Divers

[PHP]Faire un str_replace sur tout un tableau

voici la fonction :

function str_replace_array($search, $replace, $subject) {
    if(is_array($subject)) {
        foreach($subject as $index => $val) {
            $subject[$index] = str_replace_array($search, $replace, $val);
        }
        return $subject;
    } else {
        return str_replace($search, $replace, $subject);
    }
}

Tags:

[PHP]S'assurer qu'un script s'exécute en CLI

ceci évite à des scripts prévus pour fonctionner sous CLI d'être exécutés en http (sous apache)

if(!isset($_ENV['SHELL']) || stripos($_ENV['_'], 'apache') !== false) {
	die('Vous ne pouvez pas executer ce script !!!');
}

[PHP] Supprimer les accents des caractères accentués

nous avons vu dans un précédent snippet comment remplacer les caractères accentués d'une chaine par leur équivalent html.

ici nous allon voir une petite fonction pour les remplacer par leurs équivalents sans les accents :)

function removeAccents($string)
    {
        return iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string);
    }

à noter un fonctionnement bizarre sous windows, donc attention, fonctionnel sous Linux seulement.

si vous voulez un tuto complet sur le sujet, un bon article ici : http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-acc...

EDIT :
Après quelques tests plus poussés, iconv semble un peu à la ramasse, rien ne vaut une bonne vielle fonction maison pour faire le boulot :

function _removeAccents ($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',
        );

        $text = strtr ($text, $alphabet);

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

        return $text;
    }

[PHP] vider un dossier

tout est dans le code, le fonctionne vide un dossier de tout son contenu (fichiers et dossiers), donc elle est récursive.

exemple d'utilisation :

clear_dir(realpath(dirname(__FILE__) . "/../cache"));

la fonction :

function clear_dir($dir, $delete = false) {
	$dossier = $dir;
	$dir = opendir($dossier); 
	while($file = readdir($dir)) { 
		if(!in_array($file, array(".", ".."))){
			if(is_dir("$dossier/$file")) {
				clear_dir("$dossier/$file", true);
			} else {
				unlink("$dossier/$file");
			}
			
			
		}
	} 
	closedir($dir);
	
	if($delete == true) {
		rmdir("$dossier/$file");
	}
}

[PHP] get the current URL (url de la page en cours)

public static function getCurrentUrl() {
      return (!empty($_SERVER['HTTPS']) ? "https://" : "http://" ) . $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
}

Pages

Subscribe to RSS - Divers