在PHP中将破折号替换为空格

49

我目前在我的代码中有这一行:

<div><a href="http://www.envisionforce.com/local/'.$row[website].'-seo-services">'.ucwords($row[website]).'</a></div>

它将显示像这样的城市名称:

Puiol-del-piu

但我需要它在没有破折号的情况下显示,这样ucwords才能将每个单词的第一个字母大写,就像这样:

Puiol Del Piu

如果代码能被限制在这一行就太好了,因为页面中还有其他许多事情要处理。


"一行代码" 使用函数! - phant0m
这个正则表达式可以完成任务。 $string = preg_replace("/[-]/", " ", $string); - Genesis
4
不需要使用正则表达式 - str_replace 可以更省内存、CPU和时间地完成工作。 - symcbean
4个回答

72

这个 str_replace 函数能够完成该任务:

$string = str_replace("-", " ", $string);

此外,您可以将其制作成一个函数。

function replace_dashes($string) {
    $string = str_replace("-", " ", $string);
    return $string;
}

然后你称之为:

$varcity = replace_dashes($row[website]);
<div><a href="http://www.envisionforce.com/local/'.$row[website].'-seo-services">'.ucwords($varcity).'</a></div>

1
你的例子中前两个参数位置颠倒了,很容易修复!感谢提供示例。http://php.net/manual/zh/function.str-replace.php - Steve Meisner
2
@SteveMeisner,实际上并不是这样。他想要去掉“破折号”,用空格来替代它们。这就是该函数的作用。 - Genesis
1
Darkeden - 你说得对!我读反了(可能是因为我试图用破折号替换空格...)。谢谢! - Steve Meisner

57

13

用空格替换破折号

str_replace("-"," ",$row[text])

用破折号代替空格

str_replace(" ","-",$row[text])

6

str_replace('要查找替换的内容', '替换成的内容', '你的数组或字符串变量');

如果你想将破折号替换成空格,你可以使用这个函数:

str_replace("-"," ",$row[text])

如果你想用破折号替换空格,可以使用以下代码:

str_replace(" ","-",$row[text])

使用ucwords()函数来将单词首字母大写。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接