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


replace dashes in to space using php

你能帮我解决我的问题吗?

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

这是我发现的提示:

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;
    }

我的问题是我想创建一个反之亦然的替换破折号到空格

示例输入:

冲刺到空间

示例输出

冲向太空

我该怎么做?

您可以使用

以下基于环顾的preg_replace

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

正则表达式演示

这将避免-被空间包围时将其替换为空格。

第一行只是清理字符串。

最后一行执行替换功能。

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

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

它将帮助您:

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

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

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