Php 将页面标题中的双连字符替换为单连字符

Php 将页面标题中的双连字符替换为单连字符,php,preg-replace,str-replace,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>

我有这样的页面标题:

$pageTitle = "<title>site - {$cat} - {$q} - {$prod} - {$prodName}</title>";
$pageTitle = str_replace(' - - ', ' - ', $pageTitle);    
echo $pageTitle;
<title>site - SportingGoods - Airbed -  - SportingGoods</title>    
$pageTitle=“站点-{$cat}-{$q}-{$prod}-{$prodName}”;
$pageTitle=str_replace('-','-',$pageTitle);
echo$pageTitle;
有时,这与页面标题类似:

$pageTitle = "<title>site - {$cat} - {$q} - {$prod} - {$prodName}</title>";
$pageTitle = str_replace(' - - ', ' - ', $pageTitle);    
echo $pageTitle;
<title>site - SportingGoods - Airbed -  - SportingGoods</title>    
站点-运动商品-空气床-运动商品
当这种情况发生时,其中一个变量是空的,我想用一个单字符删除空的双连字符。我以为str_replace这样的东西在这里可以用,但实际上不行


提前感谢。

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

$pageTitle = str_replace(' -  - ', ' - ', $pageTitle);
要解决完整的问题,请使用以下方法:

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

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

刚刚意识到这个标题中有两个SportingGoods,但这是另一个问题