我想取一個字符串,將其除去所有非字母數字字符並將所有空格轉換爲破折號。如何將字符串轉換爲字母數字並將空格轉換爲破折號?
4
A
回答
10
無論何時我想將標題或其他字符串轉換爲URL段落,我都會使用以下代碼。它通過使用RegEx將任何字符串轉換爲字母數字字符和連字符來完成您要求的所有功能。
function generateSlugFrom($string)
{
// Put any language specific filters here,
// like, for example, turning the Swedish letter "å" into "a"
// Remove any character that is not alphanumeric, white-space, or a hyphen
$string = preg_replace('/[^a-z0-9\s\-]/i', '', $string);
// Replace all spaces with hyphens
$string = preg_replace('/\s/', '-', $string);
// Replace multiple hyphens with a single hyphen
$string = preg_replace('/\-\-+/', '-', $string);
// Remove leading and trailing hyphens, and then lowercase the URL
$string = strtolower(trim($string, '-'));
return $string;
}
如果你要使用產生的URL蛞蝓的代碼,那麼你可能需要考慮增加一些額外的代碼後80個字符左右削減它。
if (strlen($string) > 80) {
$string = substr($string, 0, 80);
/**
* If there is a hyphen reasonably close to the end of the slug,
* cut the string right before the hyphen.
*/
if (strpos(substr($string, -20), '-') !== false) {
$string = substr($string, 0, strrpos($string, '-'));
}
}
+0
這非常好,謝謝分享你的代碼。幾乎正是我所期待的。 – Decoy 2012-01-08 09:07:40
11
啊,我以前用過這篇博文(對於url)。
代碼:
$string = preg_replace("/[^0-9a-zA-Z ]/m", "", $string);
$string = preg_replace("/ /", "-", $string);
$string
將包含過濾文本。你可以迴應它或做任何你想要的東西。
0
$string = preg_replace(array('/[^[:alnum:]]/', '/(\s+|\-{2,})/'), array('', '-'), $string);
相關問題
- 1. 如何從字符串中去除所有非字母,並在JavaScript中將空格轉換爲破折號?
- 2. C++用破折號將字符串轉換爲整數
- 3. 將字母數字字符串轉換爲整數格式
- 4. 如何將數字字符串轉換爲數字(十進制)並將數字轉換爲字符串
- 5. 將一串字母轉換爲數字
- 6. 如何將數字轉換爲字符串(字母)在PHP?
- 7. 如何將字符串中的字母轉換爲數字 - C++
- 8. XSLT將字符串數字與空格轉換爲數字
- 9. 如何將非空字符串數組轉換爲字符串?
- 10. 將空字符串轉換爲整數
- 11. 將字符串轉換爲符號並將它們轉換爲數組
- 12. 如何將空字符串轉換爲空字符串json.net
- 13. HttpResponse作爲字符串 - 將數字轉換爲字母
- 14. 將字符串轉換爲字符,空格字符未正確轉換
- 15. 將textField轉換爲字符串並將字符串轉換爲textField
- 16. 將字符數組轉換爲無空格的字符串
- 17. 將JavaScript符號轉換爲字符串?
- 18. 將字符串轉換爲格式爲
- 19. 將字符串轉換爲int,int轉換爲字符串
- 20. 如何將數字結果轉換爲符號或字符串?
- 21. 將字母數字字符串轉換爲java中的字節?
- 22. 將字符串轉換爲字符串
- 23. 將字符串轉換爲字符串
- 24. 將字符串轉換爲字符串
- 25. 將字符串轉換爲「_」
- 26. 將字符串轉換爲
- 27. 將字符串轉換爲?
- 28. Knockout.js將數字轉換爲字符串
- 29. Android:EditTextPreference將字符串轉換爲數字
- 30. 將數字字符串轉換爲sqldbtype
[PHP /正則表達式: 「linkify」 博客標題]的可能重複(http://stackoverflow.com/questions/3244651/php-regex-linkify-blog-titles)的 – mario 2012-01-08 03:57:51
可能的複製[php/regex:「linkify」博客標題](https://stackoverflow.com/questions/3244651/php-regex-linkify-blog-titles) – primpap 2017-09-13 22:05:54