Я программирую блог, и я хочу, чтобы URI были заголовком, как заголовок вопроса здесь, в stackoverflow или как wordpress.
Каковы правила для дезинфекции URI?
Есть ли уже сделанный код в PHP, который делает это?
Заранее спасибо,
Omer
Многие CMS реализовали что-то подобное, одно из WordPress было опубликовано в другом вопросе . Вас тоже может заинтересовать вопрос об этой технике .
Это может быть самый короткий способ заменить любой алфавитно-цифровой символ одним дефис:
trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($str)), '-')
Вот как это делает drupal .
В случае отказа сайта:
<?php function pathauto_cleanstring($string) { $url = $string; $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); // substitutes anything but letters, numbers and '_' with separator $url = trim($url, "-"); $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); // TRANSLIT does the whole job $url = strtolower($url); $url = preg_replace('~[^-a-z0-9_]+~', '', $url); // keep only letters, numbers, '_' and separator return $url; }
Как правило, вы хотите, чтобы ваш URL имел только 0-9 и az, и убедитесь, что все в нижнем регистре. Замените пробелы пунктиром (-) и разделите оставшуюся часть тарабарщины.
В значительной степени это выяснилось.