Si j'ai bien compris, tu veux un système de slug?
bref si c'est le cas en supposant que tu as ton titre dans $titre
$requete= "SELECT B.titre FROM billets AS B WHERE B.id =".$id;
$titre= $cnx->query($requete);
le code suivant peut te créer le slug à utiliser comme url
setlocale(LC_CTYPE, 'fr_FR');
$slug = iconv('UTF-8', 'ASCII//TRANSLIT', $titre); // En gros ca change les é è ê en e les à en a etc....
$slug = strtolower(trim($slug)); // je prend le titre, je le met en minuscule et j'enl_=èves les espaces à droite et à gauche
// replace all non valid characters and spaces with an underscore
$titre = preg_replace('/^a-z0-9-]/', '_', $titre); // dans le titre qui est devenu le slug, tout ce qui n'est pas de a à z ou de 0 à 9 ou le tiret moyen est changé en "_"
$titre = preg_replace('/-+/', "_", $titre); je change tout les tirets moyens (une ou plusieurs occurence de suite) sont remplacà par un tiret bas "_"
Par exemple:
si $titre=" manger en toute sécurité";
alors $slug=" manger_en_toute_securite";
tu peux par exemple faire une fonction
function slug($chaine, $remplacement = '_') {
return preg_replace('/-+/', $remplacement, preg_replace('/^a-z0-9-]/', $remplacement, strtolower(trim(iconv('UTF-8', 'ASCII//TRANSLIT', $chaine))));
}
vu que plusieurs personnes poses des questions sur le forum php en faisant référence à cakephp je tiens à préciser que si tu utilises cakephp tu as la fonction Inflector::slug($word, $replacement = '_') qui fait cela pour toi