2017-07-04 14 views
1

,我想用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; 
+2

将其替换为jeson_encode。 – vaso123

+2

为什么你在原始'$ str ['url']'中放置反斜杠?你为什么首先执行'json_encode'? –

+0

是因为斜线后来编码。 – Nicolas

回答

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。

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; 
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

它会为你工作。