如何删除空格 + 连字符 + 空格以仅使用 preg_replace url slug 中的连字符
How to remove whitespace + hiphen + whitespace to only hiphen in url slug with preg_replace
我正在使用这个功能。
一切正常,但是当我输入项目标题时:"Example - A digital product" 它显示 url slug 示例---a-digital-product..这里在单词示例之后有 3 个 hiphen 连续。请帮忙解决。
public function item_slug($string){
$slug=preg_replace(array('/[^A-Za-z0-9 -]+/','/[ -]+/'), array('',''),$string);
return $slug;
}
您可以在第二个替换中使用连字符,将 1 次或多次出现的 space 或与 [ -]+
匹配的连字符替换为单个连字符。
示例代码:
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
我正在使用这个功能。 一切正常,但是当我输入项目标题时:"Example - A digital product" 它显示 url slug 示例---a-digital-product..这里在单词示例之后有 3 个 hiphen 连续。请帮忙解决。
public function item_slug($string){
$slug=preg_replace(array('/[^A-Za-z0-9 -]+/','/[ -]+/'), array('',''),$string);
return $slug;
}
您可以在第二个替换中使用连字符,将 1 次或多次出现的 space 或与 [ -]+
匹配的连字符替换为单个连字符。
示例代码:
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