,我想用ES/ES更换恩/我们:PHP:就想换成 '\ /' 从字符串
<?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;
,我想用ES/ES更换恩/我们:PHP:就想换成 '\ /' 从字符串
<?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;
你需要 '双逃逸' 反斜杠,像这样:
<?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。
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;
将其替换为jeson_encode。 – vaso123
为什么你在原始'$ str ['url']'中放置反斜杠?你为什么首先执行'json_encode'? –
是因为斜线后来编码。 – Nicolas