wkhtmltopdf - URL 中的空格
wkhtmltopdf - Spaces in URL
当 URL 包含 %20
.
使用 wkhtmltopdf 时,我无法生成图像
当通过命令行在本地执行相同的命令时,这不是问题。
有什么方法可以让它在联机后正常工作吗?
到目前为止我的代码是:
<?php
$url = $_GET['url']; // Website URL to Create Image
$name = $_GET['img']; // Output Image Name
$command = "/usr/local/bin/wkhtmltoimage --no-images --crop-w 580";
$dir_img = "images/"; // Image files will be saved here
$ex_cmd = "$command $url " . $dir_img . $name;
$output = shell_exec($ex_cmd);
?>
除非 URL.
中有 %20
,否则这工作正常
我需要截屏的页面 有 在其 URL 中有 %20
,因此不幸的是,删除它的功能不是解决方案。
你必须避开你的论点,否则你的代码中会有一个巨大的安全漏洞:
$url = escapeshellarg($_GET['url']); // Website URL to Create Image
$name = escapeshellarg($_GET['img']); // Output Image Name
$command = "/usr/local/bin/wkhtmltoimage --no-images --crop-w 580";
$dir_img = "images/"; // Image files will be saved here
$ex_cmd = "$command $url " . $dir_img . $name;
$output = shell_exec($ex_cmd);
这只是为了帮助您入门,您还必须检查 $_GET['url']
是 url,而不是 ./config/database.php
,并且 $_GET['img']
也必须被清理。
当 URL 包含 %20
.
当通过命令行在本地执行相同的命令时,这不是问题。
有什么方法可以让它在联机后正常工作吗?
到目前为止我的代码是:
<?php
$url = $_GET['url']; // Website URL to Create Image
$name = $_GET['img']; // Output Image Name
$command = "/usr/local/bin/wkhtmltoimage --no-images --crop-w 580";
$dir_img = "images/"; // Image files will be saved here
$ex_cmd = "$command $url " . $dir_img . $name;
$output = shell_exec($ex_cmd);
?>
除非 URL.
中有%20
,否则这工作正常
我需要截屏的页面 有 在其 URL 中有 %20
,因此不幸的是,删除它的功能不是解决方案。
你必须避开你的论点,否则你的代码中会有一个巨大的安全漏洞:
$url = escapeshellarg($_GET['url']); // Website URL to Create Image
$name = escapeshellarg($_GET['img']); // Output Image Name
$command = "/usr/local/bin/wkhtmltoimage --no-images --crop-w 580";
$dir_img = "images/"; // Image files will be saved here
$ex_cmd = "$command $url " . $dir_img . $name;
$output = shell_exec($ex_cmd);
这只是为了帮助您入门,您还必须检查 $_GET['url']
是 url,而不是 ./config/database.php
,并且 $_GET['img']
也必须被清理。