我正在从Instagram中提取JSON:

$instagrams = json_decode($response)->data;

然后将变量解析为PHP数组以重新构造数据,然后重新编码并缓存文件:

file_put_contents($cache,json_encode($results));

当我打开缓存文件时,所有正向斜杠"/"都被转义:

http:\/\/distilleryimage4.instagram.com\/410e7...

根据我的搜索,我发现json_encode()会自动执行此操作……有什么方法可以禁用它吗?

推荐答案

有没有办法禁用它?

是的,您只需要使用JSON_UNESCAPED_SLASHES的旗子就可以了.

!important以前读过:https://stackoverflow.com/a/10210367/367456(知道你在和什么打交道--知道你的敌人)

json_encode($str, JSON_UNESCAPED_SLASHES);

如果你手头没有PHP5.4,从现有的许多函数中 Select 一个,并根据需要修改它们,例如http://snippets.dzone.com/posts/show/7487 (archived copy).

Example Demo

<?php
/*
 * Escaping the reverse-solidus character ("/", slash) is optional in JSON.
 *
 * This can be controlled with the JSON_UNESCAPED_SLASHES flag constant in PHP.
 *
 * @link http://stackoverflow.com/a/10210433/367456
 */    

$url = 'http://www.example.com/';

echo json_encode($url), "\n";

echo json_encode($url, JSON_UNESCAPED_SLASHES), "\n";

输出示例:

"http:\/\/www.example.com\/"
"http://www.example.com/"

Php相关问答推荐

WooCommerce拆分运输包裹上的商品数量增加运输成本

当我们使用PHPUnit时,控制台中的--uses param到底起了什么作用以及如何使用?

为什么注册SIGHUP的处理程序函数会阻止在PHP CLI中等待输入时点击X关闭Xterm窗口?""

邮箱打开跟踪器不工作时发送邮件使用laravel调度程序

如何在搜索域名时重定向到登陆页?

以编程方式更改新订单、已取消订单和失败订单的邮箱WooCommerce通知

使用列入黑名单的单词和自定义业务逻辑的组合将特定的子字符串包装在HTML标记中

通过访问单个产品页面更新WooCommerce产品元数据

使用与OpenSSL命令行兼容的AES-256-CTR为大型文件创建php代码OpenSSL加密

PHP -将字符串拆分为两个相等的部分,但第二个字符串中的单词更多

Symfony Validator:如何使用XML表示法验证深度嵌套的数据?

是否有条件判断是否发布了另一个Wordpress页面?

根据类别的数量折扣更改WooCommerce购物车商品价格

Symfony框架锁定和.env设置

从 WooCommerce 购物车中删除总计部分,同时保留小计行

无法在 WordPress 上获取 JSON 数据

单个产品页面 WooCommerce 订阅价格字符串的更改

主机中未检索用户表数据

Symfony:指定 data_class 时,提交的表单获取初始化前不得访问

如何在 Laravel 中修改嵌套数组的键?