我正在尝试从我的数据库中获取产品名称并重写它们,名称看起来像这样:
Romper bedrukt met tekst - Lime maat 68这是我的重写:
$string = preg_replace("/[^ \w]+/", "", $testlink['name']);
$string = str_replace(" ", "-", $string);当名称为:
Romper bedrukt met tekst - Lime maat 68它需要这样做:
Romper-bedrukt-met-tekst-Lime-maat-68但它是这样做的:
Romper-bedrukt-met-tekst--Lime-maat-68您可以看到double --,因为在第一个preg-replace中,我删除了除数字和字母之外的所有奇怪字符,但是当名称已经包含-时,将有2个空格。我的第二个替换用两个--。
我怎么才能让它工作呢?
发布于 2015-02-17 21:26:39
你也许可以做一些像这样简单的事情:
$string = 'Romper bedrukt met tekst - Lime maat 68';
$slug = preg_replace('/\W+/', '-', $string));发布于 2015-02-17 21:26:15
在替换第一个替换之前,用空格替换" -“和它的任何迭代(例如”-“”-“和"-")。
发布于 2015-02-17 21:26:37
对于这些特定的情况:
$string = str_replace(array(' -','- ',' '), '-', $testlink['name']);https://stackoverflow.com/questions/28562557
复制相似问题