php:想要替换' \\\ /'来自字符串

时间:2017-07-04 13:08:32

标签: php

我想用es / es替换en / us:

<?php

$str = array('url'=>'www.domain.com\/data\/en\/us\/data.gif');

$json = json_encode($str);

$str = str_replace('en\/us', 'es\/es', $json);

echo $str;

3 个答案:

答案 0 :(得分:0)

你需要'双重逃避'反斜杠,如下:

<?php

$str = array('url'=>'www.domain.com/data/en/us/data.gif');

$json = json_encode($str);

$str = str_replace('en\\/us', 'es\\/es', $json);

echo $str;

请参阅http://php.net/manual/en/language.types.string.php(“单引号”部分。)

在将字符串提供给json_encode之前将更容易转义字符串,但我假设这是一个测试用例,并且要替换的数据已经是JSON。

答案 1 :(得分:0)

JSON是一种在系统之间移动数据的有用格式。将数据转换为JSON然后尝试操作它而不首先解析它几乎总是一个可怕的(过于复杂和容易出错)的想法。

替换为之前将其转换为JSON。

<?php

function replace_country($value) {
    echo $value;
    echo "\n";
    return str_replace('en\/us', 'es\/es', $value);
}

$str = array('url'=>'www.domain.com\/data\/en\/us\/data.gif');
$str = array_map("replace_country", $str);
$json = json_encode($str);
echo $json;

答案 2 :(得分:0)

试试这个

$str = array('url'=>'www.domain.com\/data\/en\/us\/data.gif');
$str['url']=str_replace('en\/us', 'es\/es', $str['url']);
$json = json_encode($str);

它产生了输出

enter image description here

它适用于你。