【发布时间】:2016-12-14 02:33:00
【问题描述】:
我正在创建一个希望任何人都能使用的 PHP 包。 几年没做过 PHP 开发,对 pear 和 pecl 不熟悉。
我的问题的第一部分与 Pecl 和 Pear 有关:
在我看来,Pear 和 pecl 正在更新我的计算机,而不是对我的代码库做任何事情,这导致我假设我对它们所做的任何事情也需要被任何想要使用我的包的人复制。对吗?
我的问题的第二部分是具体的,我只想做一个简单的 HTTP (POST) 请求,理想情况下我想这样做,而使用我的包的人不需要任何配置。
这些是我正在考虑的选项:
HTTPRequest 似乎是完美的选择,但当我尝试开箱即用时,它会显示“致命错误:未捕获的错误:找不到类 'HttpRequest'”,当我按照these instructions 安装它时,我得到“autoheader: error: AC_CONFIG_HEADERS not found in configure.in 错误: `phpize' failed" -- 我不想调试这样疯狂的东西来做一个简单的 HTTP 请求,我也不想让使用我的包的人不得不经历这样的事情。
我使用了HTTP_Request2 via a pear install,它对我有用,但我的代码库中根本没有添加任何内容,所以对于尝试使用我的包的人来说,除非他们遵循相同的安装步骤,否则这可能会中断?
我知道我可以使用CURL,但是对于这样一个简单的操作,它的语法似乎太过分了(我希望我的代码非常易于阅读)
我想我可以使用file_get_contents() ..这是最好的选择吗?
也许我会将问题的第二部分表述为:
是否有一种方法被认为是 (1) 在 PHP 中执行 HTTP 请求和 (2) 创建任何人都可以轻松使用的包的最佳实践?
【问题讨论】:
-
我知道你说你认为 curl() 是最重要的,但我不知道为什么,这就是我会推荐的。
file_get_contents的问题是很多主机不会启用外部包装器。 -
谢谢@Dagon,我在使用 PHP curl 时遇到的最大问题,这可能是因为我不熟悉它,我不知道如何查看实际的“curl”命令它正在做的是我的代码的(即命令行等效项),我遇到过这样的情况,我有一个 curl 命令行语句可以执行我想要的操作,然后我真的很难将它转换为 PHP curl做同样的代码
-
这将是一个更好的问题,这是一个基于意见且广泛的问题。虽然 curl 确实有一百万个选项(这很棒),但听起来您的代码将是 3-4 行 php.net/manual/en/curl.examples-basic.php
-
每个主机都可以决定是否安装 curl,以及禁用任何功能 - 没有通用的方法。
-
不,它只能在启用了 fopen 包装器的情况下在 http 上工作。而且我知道许多共享主机没有启用它们
标签: php http curl request httprequest