你可以使用curl发布到本地文件吗?

时间:2011-12-21 14:38:29

标签: php curl

我尝试使用curl发布到本地文件但失败了。可以吗?我的两个管理系统在同一台服务器上,似乎没有必要让它遍历整个互联网系统只是为了转到同一个硬盘上的文件。

使用localhost没有做到这一点。

我还尝试使用帖子数据$_SERVER[DOCUMENT_ROOT].'/dir/to/file.php'。这是一个加密的API,所以我不确定它是如何工作的。这是我的计费系统,我刚刚意识到它会发回数据(API)。

它只是发布数据和XML响应。我可以写一个html表单标签和输入字段并获得相同的结果,但是没有其他任何东西可以知道。

主要问题是:curl是否能够发布到本地文件?

4 个答案:

答案 0 :(得分:2)

  

是发布数据。这是一个加密的API,所以我不确定它是如何工作的

如果没有进一步的细节,没有人可以回答你应该做什么。

但如果它确实是本地服务器上的POST接收脚本,那么您可以使用URL向它发送POST请求:

 $url = "https://$_SERVER[SERVER_NAME]/path/to/api.php";

然后从cURL调用中接收其输出。

 $data = curl($url)->post(1)->postdata(array("billing"=>1234345))
                   ->returntransfer(1)->exec();
 // (you would use the cumbersome curl_setopt() calls instead)

所以你得到一个XML或JSON或任何响应。

答案 1 :(得分:1)

如果它们位于同一驱动器上,则使用文件操作:

file_put_contents('/path/to/the/file', $contents);

只有在您出于某种原因绝对需要http层参与时,或者如果您正在处理远程服务器时,才应该使用CURL。使用HTTP也意味着您需要让'target'脚本能够处理文件上传以及您需要发送的任何其他数据,然后该脚本最终将不得不进行文件操作,所以实际上你已经为了让你可以从起居室搬到厨房,我们去了环球航班。

答案 2 :(得分:0)

file://locafilespec.ext对我有用。我在linux盒子上的同一个文件夹中有2个文件,在我的网络服务器不提供的文件夹中,我使用file:// wrapper发布到file://test.php并且它工作得很好。它不漂亮,但它会为dev工作,直到我把它移到它的最后安息之地。

答案 3 :(得分:0)

  

curl是否能够发布到本地文件?

要卷曲本地文件,您需要设置HTTP服务器,因为file://无法正常工作,所以:

npm install http-server -g

然后在文件所在的文件夹中运行HTTP服务器:

$ http-server

请参阅:Using node.js as a simple web server

然后从命令行测试curl请求到localhost,如:

curl http://127.0.0.1:8081/file.html

然后你可以在PHP中做同样的事情。