j'ai fait une limace avec tableau de bord pour mes histoires URL telles que:problème dans l'affichage d'une limace URL avec le tiret
Fetching records with slug instead of ID
Ceci est mon code pour créer limace:
function Slugit($title) {
$title = strip_tags($title);
// Preserve escaped octets.
$title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
// Remove percent signs that are not part of an octet.
$title = str_replace('%', '', $title);
// Restore octets.
$title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);
$title = remove_accents($title);
if (seems_utf8($title)) {
if (function_exists('mb_strtolower')) {
$title = mb_strtolower($title, 'UTF-8');
}
$title = utf8_uri_encode($title, 500);
}
$title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = str_replace('.', '-', $title);
$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
$title = preg_replace('/\s+/', '-', $title);
$title = preg_replace('|-+|', '-', $title);
$title = trim($title, '-');
return $title;
}
Comme vous peut voir des tirets, jusqu'à ici, tout va bien. Mais quand je clique sur le lien, il ne peut pas ouvrir et trouver ma base de données car elle est enregistrée en normal et sans tirets.
J'ai donc écrit quelque chose à supprimer des tirets:
$string = str_replace('-', ' ', $string);
Mais quand il y a ?
ou .
dans l'URL, il ne peut pas afficher!
Une aide pour récupérer l'URL d'origine ?!
voir ma réponse ici http://stackoverflow.com/questions/2955251/php-function-to-make-slug-url-string/10360316#10360316 –