首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php分段错误: 11在写入或读取/加载文件时

php分段错误: 11在写入或读取/加载文件时
EN

Stack Overflow用户
提问于 2019-03-25 22:22:05
回答 2查看 511关注 0票数 0

上述问题有时才会发生。我不知道为什么,但我假设我的php脚本(用于在JSON文件中保存和加载JSON对象)并没有完美地完成。

writeLanguage.php

代码语言:javascript
运行
复制
<?php
$myFile = "languages.json";

$cmsData = $_POST['data'];
$obj = json_decode($cmsData, true);

$myFile = "language.json";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh,json_encode($obj));

fclose($fh);

readLanguage.php

代码语言:javascript
运行
复制
$cmsData = $_GET['data'];

$myFile = "language.json";
$fhh = fopen($myFile, 'r') or die("can't open file");

$jsondata = file_get_contents($myFile);
fclose($fhh);
$json = json_decode($jsondata, true);
echo $jsondata;

在这里,我的javascript代码:

代码语言:javascript
运行
复制
DataService.prototype.loadLanguagePromise = function () {
    return new Promise(function (resolve, reject) {
        $.ajax({
            url: "php/services/readLanguage.php",
            type: "GET",
            async: true,
            dataTyp: 'json',
            success: function (data) {
                resolve("stuff worked");
            },
            error: function (xhr, desc, err) {
                reject(Error("It broke"));
            }
        })
    })
};

DataService.prototype.saveLanguage = function (cmsObject) {
    return new Promise(function (resolve, reject) {
        $.ajax({
            url: "php/services/writeLanguage.php",
            type: "POST",
            data: {data: JSON.stringify(cmsObject)},
            dataTyp: 'json',
            success: function (data) {

                resolve(data);
            },
            error: function (xhr, desc, err) {
                reject(xhr, desc, err);
            }
        })
    })
};

我查了一下分段故障的定义,但没有真正得到“aaaaah.当然,这就是原因”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-25 22:27:11

尝试删除fopen、fwrite和fclose。在第一种情况下,您只需要file_put_contents(),在第二只需要file_get_contents。

代码语言:javascript
运行
复制
<?php
$myFile = "languages.json";
$cmsData = $_POST['data'];
$obj = json_decode($cmsData, true);
$fh = file_put_contants($myFile, $cmsData,LOCK_EX) or die("can't open file");
代码语言:javascript
运行
复制
$cmsData = $_GET['data'];
$myFile = "language.json";
$jsondata = file_get_contents($myFile);
$json = json_decode($jsondata, true);
echo $jsondata;
票数 0
EN

Stack Overflow用户

发布于 2021-10-11 15:11:32

https://stackoverflow.com/a/7752606/4625150中使用答案对分割故障的系统分析

以上的一个将需要一些时间来找出,但你会找到正确的根源,然后解决它。

查看您的代码,您正在读取JSON,然后将JSON写入文件系统。这是一个故障区域,并多次由于内存不足。解决内存问题

  • 找到正确的php.ini
  • 然后通过更改memory_limit中的php.ini来增加内存。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55347252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档