使用php将破折号替换为空格

时间:2014-11-26 09:55:22

标签: php regex

你能解决我的问题吗?

我想创建一个将空格替换为破折号的函数,然后我找到了一个解决方案

这是我发现的闷热:

function slug($phrase, $maxLength=100000000000000)
    {
        $result = strtolower($phrase);

        $result = preg_replace("/[^A-Za-z0-9\s-._\/]/", "", $result);
        $result = trim(preg_replace("/[\s-]+/", " ", $result));
        $result = trim(substr($result, 0, $maxLength));
        $result = preg_replace("/\s/", "-", $result);

        return $result;
    }

我的问题是我想创建一个反之亦然的替换短划线到空间

示例输入:

破折号 - 空

示例输出

划线到空间

我该怎么做?

4 个答案:

答案 0 :(得分:2)

第一行只是清理字符串。

最后一行执行替换功能。

切换参数应该可以解决问题

$result = preg_replace("/\-/", " ", $result);

答案 1 :(得分:2)

您可以使用此基于环境的preg_replace

$result = preg_replace('/(?<!\s)-(?!\s)/', ' ', $input);

RegEx Demo

如果它被空格包围,这将避免用空格替换-

答案 2 :(得分:1)

它会对您有所帮助:

$output = str_replace(',', ' ', $result);

答案 3 :(得分:1)

$result = str_replace('-', ' ', $result); =&gt; - 到空格

$result = str_replace(' ', '-', $result); =&gt;空间 - -