如何通过php将正则表达式变量另存为.json文件?

时间:2019-08-30 03:44:28

标签: javascript php json ajax

我的代码有一个问题,我只是无法确定它是什么。我具有以下功能:

var settings = {
  dataType: 'text',
  "url": "https://example.com/v1/" + <?php echo $_POST["player"]; ?> + "?limit=1",
  "method": "GET",
}

这将以我可以运行REGEX的文本格式返回我的JSON。在这里,我运行我的正则表达式:

$.ajax(settings).done(function (response) {
  extracted = response.match(/(?=\[\{).*(?:\}\])/);
  itm = <?php echo $_POST["player"]; ?>;
  alert(extracted)

警报正是我需要的数据,警报也很好。我的问题在于储蓄。这是我的代码:

$.ajax({
  type: "post",
  url: 'post.php',
  data: {json: extracted, itemid: itm},
  success: function(){
  window.location.href = "/check/";
  },
});
});

无论出于何种原因,它仅保存为空白json文件。但是,如果我删除正则表达式,则可以保存到我的服务器上。我在这里想念什么吗?我觉得我在过去的两个小时里尝试了很多事情,而我却是最后的手段。它是JSON的事实无关紧要。即使我可以将“提取的”另存为文本,我也会很高兴。

如果有所作为,这是我下面的PHP保存文件。

<?php
if(isset($_POST['json']))
{
$data=$_POST['json'];
$itemid=$_POST['itemid'];
$fp = fopen($itemid.'.json', 'w');
fwrite($fp, $data);
fclose($fp);
}
?>

1 个答案:

答案 0 :(得分:0)

结果是我必须解析,然后重新字符串化以正确保存。我很感谢评论意见直接推动的正确性。谢谢。

var x = JSON.parse(extracted) 
var y= JSON.stringify(x);