首页 > 解决方案 > 如何去除php中两个字符之间的空格?

问题描述

我正在尝试用这样的字符串中的连字符替换空格:

"mauris pellentesque^elementum pulvinar etiam non quam^sit amet". 

我想要的是仅在两个 ^ 字符(包括 ^ 字符)之间的范围内替换所有空格:

"mauris pellentesque-elementum-pulvinar-etiam-non-quam-sit amet".

我正在使用以下代码,但它只删除了最后一个空格,请你帮我修复它:

preg_replace("'\*(.+) (.+)\*'is", "$1-$2", $string);

标签: phpregex

解决方案


<?php
$s = "mauris pellentesque^elementum pul^vinar etiam no^n quam^sit amet ^bla bla^ bla okok yes";

$parts = explode('^', $s);
$count = count($parts);

if ($count >= 3 && $count % 2 == 1) {
    for ($i = 1; $i < $count; $i += 2) {
        $parts[$i] = str_replace(' ', '-', $parts[$i]);
    }
    $s = implode($parts);
}

var_dump($s);

请参阅爆炸 计数 str_replaceimplode


推荐阅读