Я видел, как это делается на WordPress, и у меня нет доступа к word press 🙂
но мне нужно вернуть строку url, удаляя из нее любые недействительные символы и преобразовывая некоторые символы в соответствующие символы 🙂
например
1+ characters should be converted (of the following) [space] = [dash] (1 dash) >>> (-) [underscore] = [dash] (1 dash) >>> (-) $str = 'Hello WORLD this is a bad string'; $str = convert_str_to_url($str); //output//NOTE: caps have are lowercase :) //hello-world-bad-string
и удалить общие и бессмысленные слова, такие как «the», «a», «in» etccc
по крайней мере, указать мне в правильном направлении, если у dnt есть код gd 🙂
То, что вы хотите, это «пробитая» строка. Вот список релевантных ссылок:
Просто google PHP slug
для большего количества примеров.
strtr
можно использовать strtr
:
$replace = array( ' ' => '-', '_' => '-', 'the' => '', ... ); $string = strtr($string, $replace);
Я бы создал функцию с функцией str_replace (). Например:
$str = 'Sentence with some words'; $str = strtolower($str); $searchNone = array('the', 'a', 'in'); $replaceNone = ''; $str = str_replace($searchNone, $replaceNone, $str); $search = array(chr(32)); //use ascii $replace = '-'; $str = str_replace($search, $replace, $str); echo $str;
Используйте следующий сайт для специальных символов: http://www.asciitable.com/ .
Может быть, что-то вроде:
function PrettyUri($theUri) { $aToBeReplace = array(' then ', ' the ', ' an ' , ' a ', ' is ', ' are ', ' ', '_'); $aReplacements = array(' ', ' ', ' ' , ' ', ' ', ' ', '-', '-'); return str_replace($aToBeReplace, $aReplacements, strtolower($theUri)); } echo PrettyUri('Hello WORLD this is a bad string');