用单个连字符替换页面标题中的双连字符

时间:2012-02-19 12:54:24

标签: php preg-replace str-replace

我有这样的页面标题:

$pageTitle = "<title>site - {$cat} - {$q} - {$prod} - {$prodName}</title>";
$pageTitle = str_replace(' - - ', ' - ', $pageTitle);    
echo $pageTitle;

有时这个回声页面标题如下:

<title>site - SportingGoods - Airbed -  - SportingGoods</title>    

如果发生这种情况并且其中一个变量为空,我想用一个连字符删除空双连字符。我觉得像str_replace这样的东西可以在这里工作,但事实并非如此。

提前致谢。

2 个答案:

答案 0 :(得分:1)

当一个为空时,连字符之间将有两个空格(不是一个):

$pageTitle = str_replace(' -  - ', ' - ', $pageTitle);

答案 1 :(得分:0)

// Double space! Copy & paste is your friend!
$pageTitle = str_replace(' -  - ', ' - ', $pageTitle);

要解决完整的问题,请使用:

$titleParts = array($cat, $q, $prod, $prodName);
$titleParts = array_unique($titleParts);

$pageTitle  = implode(' - ', $titleParts);
$pageTitle  = str_replace(' -  - ', ' - ', $pageTitle);