我想取一个字符串,将其除去所有非字母数字字符并将所有空格转换为破折号。如何将字符串转换为字母数字并将空格转换为破折号?
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. C++用破折号将字符串转换为整数
- 2. 将字母数字字符串转换为整数格式
- 3. 将一串字母转换为数字
- 4. 如何将数字转换为字符串(字母)在PHP?
- 5. 如何将字符串中的字母转换为数字 - C++
- 6. XSLT将字符串数字与空格转换为数字
- 7. 如何将非空字符串数组转换为字符串?
- 8. 如何将空字符串转换为空字符串json.net
- 9. 将字符串转换为字符,空格字符未正确转换
- 10. 将字符数组转换为无空格的字符串
- 11. 将JavaScript符号转换为字符串?
- 12. 将字符串转换为格式为
- 13. 如何将数字结果转换为符号或字符串?
- 14. 将字符串转换为字符串
- 15. 将字符串转换为
- 16. 将字符串转换为“_”
- 17. 将字符串转换为?
- 18. 将字符串转换为数字node.js
- 19. Knockout.js将数字转换为字符串
- 20. 将字符串转换为数字
- 21. Android:EditTextPreference将字符串转换为数字
- 22. rails将字符串转换为数字
- 23. Fortran将字符串转换为数字
- 24. 将字符串转换为数字
- 25. 将字符串转换为字节数组并将字节数组转换为字符串
- 26. 将字符串转换为星号
- 27. 如何将数字转换为字符?
- 28. 将字母数字字符串转换为乱码条形码?
- 29. 如何显示数组并将数字转换为字符串?
- 30. Java:如何将字母数字字符串转换为整数并从整数转换为相同的字母数字字符串?
[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