$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
在此行中,您将所有非字母数字字符替换为分隔符,并且?
不是字母数字字符,因此将其替换,并且您以后将不对其进行任何操作。
我的子弹功能正在运行,但是我遇到了问题。
例如,如果我写文章标题,例如狐狸很狡猾,为什么?
现在是因为我添加了?标题结尾我得到-例如狐狸非常狡猾->
这是我的职能
function slug( $string, $separator = '-' )
{
$accents_regex = '~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i';
$special_cases = array( '&' => 'and', '@' => 'at', '%' => 'percent', "'" => '');
$string = mb_strtolower( trim( $string ), 'UTF-8' );
$string = str_replace( array_keys($special_cases), array_values( $special_cases), $string );
$string = preg_replace( $accents_regex, '$1', htmlentities( $string, ENT_QUOTES, 'UTF-8' ) );
$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
$string = preg_replace("/[$separator]+/u", "$separator", $string);
return $string;
}
有人可以帮忙解决吗?谢谢
嗨,大家好,我的子弹功能正在运行,但是我遇到了问题。说如果我写文章的标题例如狐狸为什么很狡猾?现在因为我添加了?标题结尾我得到-例如-]] >>
$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
在此行中,您将所有非字母数字字符替换为分隔符,并且?
不是字母数字字符,因此将其替换,并且您以后将不对其进行任何操作。
您可以在函数的末尾添加$string = trim($string, $separator);
以删除字符串末尾的$separator
字符。
$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
在此行中,您将所有非字母数字字符替换为分隔符,并且?
不是字母数字字符,因此将其替换,并且您以后将不对其进行任何操作。