将此curl命令转换为php curl

问题描述 投票:1回答:2

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

我可以这样毫无问题地做到这一点:

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后应该获取的文件的路径和名称。

php docker curl
2个回答
0
投票

我认为您正在寻找CURLOPT_FILE

CURLOPT_FILE应该将传输写入的文件。默认值为STDOUT(浏览器窗口)。

https://www.php.net/manual/en/function.curl-setopt.php


0
投票
    <?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;
© www.soinside.com 2019 - 2024. All rights reserved.