首页 > 解决方案 > 将此 curl 命令转换为 php curl

问题描述

我正在尝试编写一个 php 文件来使用将 html 转换为 pdf 的 docker 容器内的微服务。

我可以通过这种方式毫无问题地做到这一点:

curl -vv -F --output 'file=@/home/user/Documents/contract.html' http://0.0.0.0:32768/ -o /home/user/contract.pdf

现在我正在尝试在 php 文件中“翻译”这个命令,但这是我第一次在 php 中使用 curl。

    //Initialise the cURL var
    $ch = curl_init();

    //Get the response from cURL
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    //Set the Url
    curl_setopt($ch, CURLOPT_URL, 'http://0.0.0.0:32768/');

    //Create a POST array with the file in it
    $postData = array(
        'testData' => '@/home/user/Documents/contract.html',
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

    // Execute the request
    $response = curl_exec($ch);
    var_dump($response);

我缺少-o命令的选项,将html文件转换为pdf后我应该得到的文件的路径和名称。

标签: phpdockercurl

解决方案


    <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "curl%20-vv%20-F%20--output%20'file=@/home/user/Documents/contract.html'%20http://0.0.0.0:32768/%20-o%20/home/user/contract.pdf%0A%0A",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

推荐阅读