將字符串轉換爲slu best的最佳方式是什麼?含義:允許PHP將字符串轉換爲slu 012
- α,轉換爲小寫
- 允許數字
- 空間應予以消除,而不是轉化爲破折號(「 - 」)
- 重音字符替換爲等效標準的字母
- 沒有其他字符允許,應該被剝離
我在網上發現了很多代碼,但它都傾向於將空格破折號,我不想這樣做。
我任選也很感興趣在不同的轉化,其中:
- 號(「&」)應當由字符串替換‘和’
並且還一種變型,其中:
- 不要打擾將重音字符轉換爲等效的標準字母
將字符串轉換爲slu best的最佳方式是什麼?含義:允許PHP將字符串轉換爲slu 012
我在網上發現了很多代碼,但它都傾向於將空格破折號,我不想這樣做。
我任選也很感興趣在不同的轉化,其中:
並且還一種變型,其中:
這是我最初在這裏找到的一個修改函數(http://cubiq.org/the-perfect-php-clean-url-generator)。您可以通過''
作爲分隔符不使用'-'
。
public static function createSlug($str, $delimiter = '-'){
$slug = strtolower(trim(preg_replace('/[\s-]+/', $delimiter, preg_replace('/[^A-Za-z0-9-]+/', $delimiter, preg_replace('/[&]/', 'and', preg_replace('/[\']/', '', iconv('UTF-8', 'ASCII//TRANSLIT', $str))))), $delimiter));
return $slug;
}
這似乎是個不錯的選擇@cmorrissey。 –
上一個是很好的解決方案。但不幸的是,它切斷了特定的字母,如ć或ż。 如果您想保留它們,然後:
public static function createSlug($str, $delimiter = '-'){
$unwanted_array = ['ś'=>'s', 'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ź' => 'z', 'ż' => 'z',
'Ś'=>'s', 'Ą' => 'a', 'Ć' => 'c', 'Ę' => 'e', 'Ł' => 'l', 'Ń' => 'n', 'Ó' => 'o', 'Ź' => 'z', 'Ż' => 'z']; // Polish letters for example
$str = strtr($str, $unwanted_array);
$slug = strtolower(trim(preg_replace('/[\s-]+/', $delimiter, preg_replace('/[^A-Za-z0-9-]+/', $delimiter, preg_replace('/[&]/', 'and', preg_replace('/[\']/', '', iconv('UTF-8', 'ASCII//TRANSLIT', $str))))), $delimiter));
return $slug;
}
http://cubiq.org/the-perfect-php-clean-url-generator – cmorrissey
所以'youwantyoururltolooklikethis'清潔尋找'而不是你,want-你的URL到看樣this'?此外,重音字符被等同的標準字母替換,但不要轉換重音字符。哪一個? –
選擇一個接近您想要的解決方案,然後修改它以添加您的特殊要求。 – Barmar