如何在每个单词后加减号?

时间:2014-04-02 12:08:56

标签: php regex

我正在处理youtube视频Feed,我想将每个视频标题转换为seotitle。

我有一个像这样的字符串:'Kings Of Leon - Use Somebody'

我希望它像这样:'Kings-Of-Leon-Use-Somebody'

我试过这段代码:

$seotitle=str_replace(' ','-',$video['title']['$t']);

但我得到了这个'Kings-Of-Leon-Use---Somebody'

处理额外空格和减号的好方法是什么?

4 个答案:

答案 0 :(得分:4)

一个简单的正则表达式,你想要的是:

preg_replace('|[ -]+|', '-', $seotitle);

答案 1 :(得分:1)

试试这个:

$string = 'Kings Of Leon - Use Somebody';

// first replace anything but letters with space
$string = preg_replace('/[^a-zA-Z]/', ' ', $string);

// then replace consecutive spaces with hypen
$string = preg_replace('/[ ]+/', '-', trim($string));

有关详细信息,请参阅内联注释。

答案 2 :(得分:1)

试试这个:

//string assign to variable
$string = 'Kings Of Leon - Use Somebody';
//Removes whitespace or other predefined characters from the right side of a string
$string = ltrim($string);
// Removes whitespace or other predefined characters from both sides of a string
$string = rtrim($string);
// str replace methods
$string = str_replace(" ", "-", $string);
// RemoveSpecial Character
$string = preg_replace("/[^A-Za-z0-9\-]/", "",$string);
// Remove Multiple -
$string = preg_replace('/-+/', '-',$string);

答案 3 :(得分:-1)

您可以使用相同的功能来替换' - '用' '像这样:

$seotitle_temp=str_replace(' - ', ' ', 'Kings Of Leon - Use Somebody'); 
$seotitle_temp=str_replace(' ', '-', 'Kings Of Leon - Use Somebody');

然后你会明白的。