【问题标题】:Get a cURL command from the PHP's object从 PHP 的对象中获取 cURL 命令
【发布时间】:2015-09-17 21:42:41
【问题描述】:

是否可以从 PHP 的对象中获取 cURL 命令?我的意思是,做这个:

$ch = curl_init('http://'.$host . $url);
//...
$response = curl_exec($ch);

看起来像这样:

curl -X POST -d http://www.google.com/

有可能吗?有没有技巧或原生方法?

【问题讨论】:

  • 我见过这个。但是这些选项中的任何一个都会给我 curl 命令?
  • 没有。没有 php-in-curl-to-php-on-cli 翻译器。 php 在做shell_exec('curl....'),期间。它直接与后端 curl 库对话。
  • 嘿@Victor。您提到的命令 (curl -X POST -d http://www.google.com/) 无效。无论如何,您想要实现的是像从命令行一样执行 cURL 请求,而不是使用命令获取字符串,对吧?
  • @GustavoStraube 我想创建一个 cURL 对象并从中获取命令行。我知道这是无效的,只是一个例子

标签: php curl php-curl


【解决方案1】:

无法从 PHP 库 cURL 获取命令行等效项(选项)来执行工具 curl

工具和 PHP 库都使用 libcurl 来执行客户端 URL 传输,这是一个 C 库。但仅此而已。对于cURL 中可用的大多数curl 选项,您很可能有一个PHP 等效项,但是,这不是一个规则。

我不认为您只是想使用curl 从您的应用程序发出请求,如果您愿意,您将使用 PHP 库。也就是说,没有简单的方法可以得到你想要的。可能您需要将命令构建为字符串。像这样的:

function getCurlCommand($url, $method = 'GET', array $params = null /* , ... */ )
{
    $cmd = 'curl';
    $params = [];
    if ($method !== 'GET') {
        $params[] = '-X ' . $method;
    }
    if ($data !== null) {
        $params[] = '-d ' . http_build_query($data); 
    }

    // ...

    return $cmd . ' ' . implode(' ', $params) . ' ' . $url;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2012-08-29
    相关资源
    最近更新 更多