2016-06-05 3 views
0

Я написал основную функцию, чтобы заменить пробелы в динамических строк с «-» ниже:Замена строки, которые появляются более одного раза

function generate_seo_friendly_links($pNM, $pID) 
{ 
    $replacedNM    = str_replace(" ", "-", $pNM); 
    $brandNewSEOFriendlyURL = "<a href='$replacedNM-$pID.html'>$pNM</a>"; 
    return $brandNewSEOFriendlyURL; 
} 

Это прекрасно работает, если только 1 пространство между каждой строки (строк вытягивают динамически и не отформатирован правильно все дни), но иногда она имеет более чем 1 место, как: string---string-string или лучший пример ниже:

The-Night-менеджер - DVD --- 2016 - B01BPBQ1SC .html

это то, что я производить

The-Night-менеджер-DVD-2016-B01BPBQ1SC.html

это то, что все строки должны выглядеть аккуратно пространства с помощью всего 1 -.

Я не могу придумать, как это сделать.

Спасибо за помощь!

+0

'preg_replace ("\ s +", "-", $ PNM)' – splash58

ответ

1

Вы можете использовать регулярное выражение, чтобы заменить все непрерывные горизонтальные пробелы одним -.

$replacedNM = preg_replace("/\h+/", "-", $pNM); 

Regex Демо: https://regex101.com/r/jD5xW2/1
PHP Демо: https://eval.in/583676