我想用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;
答案 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)