我正在尝试使用Docverter将 LaTeX/markdown 文件转换为 PDF,但在使用 PHP 执行 CURL以通过其 API 访问 Docverter时遇到问题。我知道我不是一个彻头彻尾的白痴 b/ci 可以让它在这个 Docverter 示例中适应 shell 脚本并从命令行(Mac OSX)运行。
使用 PHP 的exec()
:
$url=$_SERVER["DOCUMENT_ROOT"];
$file='/markdown.md';
$output= $url.'/markdown_to_pdf.pdf';
$command="curl --form from=markdown \
--form to=pdf \
--form input_files[]=@".$url.$file." \
http://c.docverter.com/convert > ".$output;
exec("$command");
这不会给出错误消息,但不起作用。某处有路径问题吗?
更新根据@John 的建议,这里有一个使用 PHPcurl_exec()
改编自此处的示例。不幸的是,这也不起作用,但至少它会给出错误消息。
$url = 'http://c.docverter.com/convert';
$fields_string ='';
$fields = array('from' => 'markdown',
'to' => 'pdf',
'input_files[]' => $_SERVER['DOCUMENT_ROOT'].'/markdown.md',
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);