PHP json_编码大小限制?
我正在使用PHP代理获取文件的内容。我想使用强大的jQuery选项搜索该文件,而不必用PHP编写各种查询。以下是我的PHP代码: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传递数据大小限制的任何信息,但显然有一个
$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)修复了这个问题,值得检查一下。。。在我的情况下,这不是问题,我仍然想知道我遇到的问题来自哪里。这不是内存问题,没有错误。问题仍然存在。。。