Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP json_编码大小限制?_Php_Size_Limit_Json - Fatal编程技术网

PHP json_编码大小限制?

PHP json_编码大小限制?,php,size,limit,json,Php,Size,Limit,Json,我正在使用PHP代理获取文件的内容。我想使用强大的jQuery选项搜索该文件,而不必用PHP编写各种查询。以下是我的PHP代码: $page = file_get_contents( filter_var( $_POST[url], FILTER_SANITIZE_URL ) ); die( json_encode( $page ) ); 如果加载的页面太大,PHP将读取整个文档,但json_编码只给出文件的第一部分,而不是整个文件。我找不到关于json传递数据大小限制的任何信息,但显然有一个

我正在使用PHP代理获取文件的内容。我想使用强大的jQuery选项搜索该文件,而不必用PHP编写各种查询。以下是我的PHP代码:

$page = file_get_contents( filter_var( $_POST[url], FILTER_SANITIZE_URL ) );
die( json_encode( $page ) );
如果加载的页面太大,PHP将读取整个文档,但json_编码只给出文件的第一部分,而不是整个文件。我找不到关于json传递数据大小限制的任何信息,但显然有一个

问题是:是否有一种变通方法可以防止仅传输部分文件

我需要从其他域获取文件,因此在jQuery中读取文件的内容实际上不是一个选项

PHP5.3:
PHP 7(当前版本):

JSON序列化数据的大小没有内置限制。反正不是字符串。因此,我假设您遇到了PHPs内存限制之类的问题


json\u encode
对字符串进行一致编码只是添加一些转义和外部双引号。在内部,这意味着一个位内存加倍(临时字符串连接和utf8到utf16转换/检查),因此我已经用8MB字符串达到了32MB php内存限制。但是除此之外,
json.c

中似乎没有任意的限制来帮助那些可能遇到无法用json\u encode解释的问题的人。我发现了解json error msg函数很有帮助

json_last_error_msg();
我也有类似的问题,但这与文件大小无关。数据库中的utf-8格式不正确。您可以像这样检查json

$json = json_encode($data);

if ($json)
    echo $json;
else
    echo json_last_error_msg();
PHP文档在这里

我解决了类似的问题。 所以,我写在这里

我的网站也回复了破碎的jsondata。大约8MB

原因是存储空间不可用。 df命令的结果显示为“已使用100%”


我删除了一些文件。然后,问题解决了。

问题不清楚。
json\u encode
可能转换的数据大小仅受可用内存的限制。您能告诉我们创建并发送到浏览器的json的最后标志吗?您确定您没有达到时间限制(默认30秒)?请尝试
设置时间限制(0)
。如果$page只是一个字符串,为什么还要对其进行JSON序列化?@Frits van Campen:达到时间限制后,他将不会收到任何东西,而不仅仅是一部分。大小远小于8Mb。我通过不将东西作为JSON导入来“修复”它(这只是一种变通方法)。这不是PHP的内存限制,否则我无法通过四处走动来“修复”这个问题JSON@patrick值得一提的是,你是如何“修复”它的,以及你的(解决方法)是如何在将来访问这里时帮助他人的。。。要详细说明“不编码”。。。我在结尾使用了:exit($page),而不是json_encode($page)。。。事情不需要在这个AJAX应用程序中进行编码,但最初的问题仍然存在……太棒了!如果我没有找到你的答案,我永远都不会明白…哥们,这太棒了!你帮我节省了很多调试时间!我用json_encode($data,json_INVALID_UTF8_IGNORE)修复了这个问题,值得检查一下。。。在我的情况下,这不是问题,我仍然想知道我遇到的问题来自哪里。这不是内存问题,没有错误。问题仍然存在。。。