2011-09-06 125 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