Un exemple très récent, le seul bout de code partageable du projet sur lequel je bosse :
Code PHP :
<?php
class StringTools
{
/**
* Removes all accents from given string
* @param string $string
* @param string $encoding
* @return string the clean string
*/
public static function removeAccents($string, $encoding = null)
{
if (is_null($encoding)) {
$encoding = sfConfig::get('sf_charset');
}
return iconv($encoding, 'us-ascii//TRANSLIT', $string);
}
/**
* Cleans a URL parameter
* @see ***.clever-age.***/***
* @param string $string
* @return string The clean string
*/
public static function cleanURLParameter($string)
{
// * Toutes les lettres accentuées perdent leurs accents é->e, à-> a
$string = StringTools::removeAccents($string);
// * Tous les caractères spéciaux et espace doivent être transformés en tiret, sauf si le caractère fait vraiment parti du nom du produit.
// ex : le caractère + devient "plus"
$string = str_replace(array('&', '/', '+'), array(' et ', ' slash ', ' plus '), $string); // replace standard characters
$string = preg_replace('/[^\w_]+/', '-', $string); // remove special characters
$string = preg_replace('/^-*(.*?)-*$/', '$1', $string); // trim
return $string;
}
}
Il y a un mélange de français et d'anglais dans les commentaires, mais c'est normal :
- l'anglais, c'est parce que nos conventions imposent l'anglais dans les commentaires.
- le français, ce sont des extraits de la spéc fonctionnelle (la partie spécifiant le traitement des URLs), que je ne souhaitais pas traduire pour conserver l'original.
[edit]Suppression de l'URL, mais j'ai laissé le nom de la boite parce que j'en suis fier [/edit]