2017-07-04 15 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

它會爲你工作。