Php 使用str replace无法正确打印字符串
这是我的代码。我必须用星号替换空格,如果字符串中一行出现两个空格,则用一个破折号替换Php 使用str replace无法正确打印字符串,php,str-replace,Php,Str Replace,这是我的代码。我必须用星号替换空格,如果字符串中一行出现两个空格,则用一个破折号替换 <?php $string = "Keep your spacing perfect!"; $search = array(' ',' '); $search2 = array('*','-'); echo str_replace($search, $search2, $string); ?> 应该是什么 Keep*your--spacing-*perfect! 那么,我的代码出了
<?php
$string = "Keep your spacing perfect!";
$search = array(' ',' ');
$search2 = array('*','-');
echo str_replace($search, $search2, $string);
?>
应该是什么
Keep*your--spacing-*perfect!
那么,我的代码出了什么问题,我该如何修复它呢?我做了一些研究,但没有找到解决办法。感谢您的帮助 您只需交换您的替代品即可。因为您在替换双空格之前替换了单空格
$string = "Keep your spacing perfect!";
$search = array(' ',' '); // swap !
$search2 = array('-','*'); // swap !
echo str_replace($search, $search2, $string);
产出:
Keep*your--spacing-*perfect!
试试这个:
<?php
$string = "Keep your spacing perfect!";
$string1 = preg_replace("/\s\s/", "-", $string);
$string2 = preg_replace("/\s/", '*', $string1);
echo $string2;
?>
答案如下: 如果
search
或replace
是数组,则会从头到尾处理它们的元素
所以只需将数组值的顺序放在相反的顺序:
<?php
$string = "Keep your spacing perfect!";
$search = array(' ',' ');
$search2 = array('-','*');
echo str_replace($search, $search2, $string);
Keep*your--spacing-*perfect!
<?php
$string = "Keep your spacing perfect!";
$search = array(' ',' ');
$search2 = array('-','*');
echo str_replace($search, $search2, $string);