Je suis en train d'écrire un script blog personnalisé et dans le cadre de celui-ci emploie un limace pour les URL de poste. Le code que j'ai pour jusqu'à présent estBesoin légère modification pour fonctionner
public function get_slug($str) {
// convert to lowercase
$str = strtolower($str);
// remove special chars
$str = preg_replace('/[^a-zA-Z0-9]/i', ' ', $str);
// remove what space from beginning and end
$str = trim($str);
// remove repeat spaces
$str = preg_replace('/\s+/', ' ', $str);
// replace spaces with hyphens
$str = preg_replace('/\s+/', '-', $str);
return $str;
}
Et cela fonctionne très bien pour la plupart des régions, mais je l'ai remarqué s'il y a un caractère spécial au milieu du mot, il remplace simplement par un trait d'union tournant « peut Tandis que je peux modifier la base de données et la corriger à la main, j'aimerais la supprimer automatiquement des caractères spéciaux au milieu des mots. pas les remplacer par un hypen.
Check out [cette fonction] (http://stackoverflow.com/questions/3230012/ remplaçant les accents avec-leurs-homologues/3230193 # 3230193) en remplacement potentiel de celui-ci. –
Essayez de changer l'espace à une chaîne vide dans votre premier remplacer. – Luigi