我想使用file_get_contents读取一个.json文件,该文件返回一个字符串。 然后我使用json_decode创建它的数组/对象。一切正常。
我的问题是,有时json文件中的字符串包含正则表达式。 这些无法解码!因此,以下通知消息:
<div class="col-sm-3" ng-repeat="days in formData.businessDays">
<input type="checkbox" ng-model="days.selected" ng-change="changed(days)"><span> {{days.name}} </span>
</div>
<div>
<p>selected values</p>
<label ng-repeat="item in selectedItems">{{item}} </label>
</div>
在Google进行快速搜索后,我发现我必须对它们进行两次转义。我试图在json文件中更改它-它可以工作。
Notice: Trying to get property 'Data' of non-object in
但是我收到了设备生成的文件,因此无法每次手动更改它。
因此,我尝试将其自动化:
From:
"Block Proxy URL": "somesite.ab123regex(\d\d\d).top/fyli.php",
To:
"Block Proxy URL": "somesite.ab123regex(\\d\\d\\d).top/fyli.php",
这不起作用。我也试过用addslashes代替str_replace,它不起作用。为什么?根据我对Google的快速搜索的答复,它适用于他们。
出于调试目的,我在str_replace之前和之后回显了$archer_json_data = file_get_contents($filename);
str_replace("\\", "\\\\", $archer_json_data);
$archer_json_array = json_decode($archer_json_data)->Data;
。它们完全相同。为什么我的str_replace无法正常工作?