2011-09-06 67 views
0

我已經構建了一個REST web服務,我想從我的json結果中刪除斜線。我有一些數據存儲在我的數據庫中,其中一個字段包含websitelinks.I可以通過我的正常視圖,這是html和通過我的json視圖來訪問它們。正常回報de鏈接正常,但json廣告斜線如下:如何從我的json結果中刪除斜槓結果CakePHP

 http:\/\/mywebsite\/company\/upload\/siteman\/thumbnails\/carr\/ 

我該如何刪除它?這裏是我的CakePHP代碼:

 // De html view 
     <h2>View all posts</h2> 

    <table> 
    <tr> 
    <th>Title</th> 
    <th>Body</th> 
    </tr> 

    <?php foreach($images as $image):?> 
     <tr> 
     <td><?php echo $image['Image']['id'];?></td> 
     <td><?php echo $image['Image']['plaatjes'];?></td> 
     </tr> 
    <?php endforeach; ?> 
    </table> 

    // The json view 
    <?php 
    echo json_encode($images); 
    ?> 
+4

你爲什麼要刪除他們?這是完美的罰款JSON和斜槓將解碼時消失。 – deceze

+0

因爲我需要通過移動應用程序訪問此json。所以json結果中的websitelinks必須可以直接訪問。 – jan

+0

爲什麼移動應用程序會有所作爲?你不是在客戶端解碼JSON嗎? – deceze

回答

6

使用str_replace,像這樣:

<?php 
echo str_replace('\/','/',json_encode($images)); 
?> 

您也可以嘗試JSON_UNESCAPED_SLASHES,像這樣:

<?php 
echo json_encode($images,JSON_UNESCAPED_SLASHES); 
?> 
+0

非常感謝!你不知道多久才試圖解決這個問題。第一個代碼有效。但是,第二個代碼給出了一個錯誤,我不知道它是什麼:通知(8):未定義的常量JSON_UNESCAPED_SLASHES用途 - 假設「JSON_UNESCAPED_SLASHES」 [APP /視圖/圖片/ JSON/index.ctp,3號線] 警告( 2):json_encode()預計參數2長,串給出[APP /視圖/圖片/ JSON/index.ctp,3號線] – jan

+2

也許你的PHP版本是不是第二個方法足夠多的新(需要5.4 .0或更高,見[這裏](http://php.net/manual/en/function.json-encode.php)) - 但至少第一種方法工作! – someone