如何用preg_replace去掉url slug中的whitespace + hiphen + whitespace到只有hiphen。

问题描述 投票:0回答:1

我正在使用这个功能。一切都很好,但当我输入项目标题,如。"example - A digital product" it shows me in url slug example---a-digital-product...这里example这个词后面有3个 hiphen连续。请帮助解决。

public function item_slug($string){
        $slug=preg_replace(array('/[^A-Za-z0-9 -]+/','/[ -]+/'), array('',''),$string);
       return $slug;
}
preg-replace slug removing-whitespace
1个回答
0
投票

你可以在第二个替换中使用连字符来替换1个或多个出现的空格或连字符,你可以用以下方法来替换 [ -]+ 用一个连字符。

示例代码。

function item_slug($string){
    return preg_replace(array('/[^A-Za-z0-9 -]+/','/[ -]+/'), array('','-'),$string);
}

$strings = [
    "example---a-digital-product..",
    "Example - A digital product"
];

foreach ($strings as $str) {
    echo item_slug($str) . PHP_EOL;
}

输出

example-a-digital-product
Example-A-digital-product

Php演示

© www.soinside.com 2019 - 2024. All rights reserved.