我面临着 URL 的问题,我希望能够转换可以包含任何内容的标题,并去掉所有特殊字符,这样它们只有字母和数字,当然我想用连字符替换空格。
这将如何完成?我听说过很多关于正则表达式(regex)的使用......
这应该可以满足您的需求:
function clean($string) {
$string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens.
return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
}
Usage:
echo clean('a|"bc!@£de^&$f g');
将输出:abcdef-g
Edit:
嘿,只是一个简单的问题,如何防止多个连字符彼此相邻?并将它们替换为 1 吗?
function clean($string) {
$string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens.
$string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
return preg_replace('/-+/', '-', $string); // Replaces multiple hyphens with single one.
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)