使用 str replace 无法正确打印字符串
string doesnt print out correctly using str replace
这是我的代码。我必须用星号替换 space,如果字符串中连续出现两个 space,则将其替换为一个破折号
<?php
$string = "Keep your spacing perfect!";
$search = array(' ',' ');
$search2 = array('*','-');
echo str_replace($search, $search2, $string);
?>
当我 运行 它打印出来
Keep*your****spacing***perfect!
应该是
Keep*your--spacing-*perfect!
我的代码有什么问题,我该如何解决?我做了一些研究,但无法找到解决方案。感谢您的帮助!
你只需要交换你的替换。因为你替换单 space before 替换双 spaces.
$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;
?>
输出如下:
Keep*your--spacing-*perfect!
答案是PHP manual entry for str_replace
中的这一行:
If search
or replace
are arrays, their elements are processed first to last.
因此只需将数组值的顺序倒过来即可:
<?php
$string = "Keep your spacing perfect!";
$search = array(' ',' ');
$search2 = array('-','*');
echo str_replace($search, $search2, $string);
这是我的代码。我必须用星号替换 space,如果字符串中连续出现两个 space,则将其替换为一个破折号
<?php
$string = "Keep your spacing perfect!";
$search = array(' ',' ');
$search2 = array('*','-');
echo str_replace($search, $search2, $string);
?>
当我 运行 它打印出来
Keep*your****spacing***perfect!
应该是
Keep*your--spacing-*perfect!
我的代码有什么问题,我该如何解决?我做了一些研究,但无法找到解决方案。感谢您的帮助!
你只需要交换你的替换。因为你替换单 space before 替换双 spaces.
$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;
?>
输出如下:
Keep*your--spacing-*perfect!
答案是PHP manual entry for str_replace
中的这一行:
If
search
orreplace
are arrays, their elements are processed first to last.
因此只需将数组值的顺序倒过来即可:
<?php
$string = "Keep your spacing perfect!";
$search = array(' ',' ');
$search2 = array('-','*');
echo str_replace($search, $search2, $string);