php file_get_contents和file长度的问题



我编写了一个简单的api,可以将数据从一台服务器汇集到另一台服务器。它是一个非常简单的基于$_GET的api,其中所有数据都作为GET数据附加到url。

所以我得到了这样的东西:http://example.com/api.php?param1=afdsa&param2=TTTT&....

为了称之为file_get_contents($url);首先,我真的不需要回复的内容。我只需要"触摸"网址,这样它就会生效。

我的主机(共享,justhost)有问题,我已经转到了VPS。我的api调用开始超时,当我检查apacheerror.log时,我看到:

"failed to open stream: File name too long in ..."

事实上,$url字符串大约有450个字符。

问题是,我在哪里更改文件长度的设置。它与硬盘文件系统不同,因为我自己的计算机可以获得相同的字符串,没有问题,也没有错误。此外,共享主机对该url没有任何问题。

VPS使用PHP版本5.3.2-1ubuntu4.9 运行ubuntu 10.04 lts

感谢任何帮助,已经坐了两天了

已解决

好吧,你知道当你认为你知道问题在哪里,但事实并非如此时是怎么回事吗?那就是问题所在。我已经重写了我的API,所以它所能做的就是print_r($_GET);,你知道吗?它工作得很好。因此,我开始一行接一行地添加,并发现堆叠脚本的是php邮件函数。为什么?我不知道,也许邮件设置不正确——但现在,当我评论完邮件后,一切都很好。

它仍然不能解释我的"文件到长"错误,但没关系。感谢所有

看起来你的URI太长了。

相关:在不同的浏览器中,URL的最大长度是多少?

考虑使用CURL将变量POST到api.php

您的问题不在file_get_contents,而是在fopen或其他试图创建文件的函数中。它可以是缓存系统-不能说没有代码。换句话说,问题不在于url的长度,而在于文件名的长度
failed to open stream-它是来自文件处理程序的错误消息
URL的长度不受限制,即使受到服务器(例如apache)的限制,也不会被警告为错误。

相关内容

  • 没有找到相关文章

最新更新