Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在shell脚本中使用PHP的HTML输出_Php_Bash_Curl - Fatal编程技术网

在shell脚本中使用PHP的HTML输出

在shell脚本中使用PHP的HTML输出,php,bash,curl,Php,Bash,Curl,我有一个创建大型复杂表的PHP脚本。我正在尝试设置一个shell脚本,它将接受一个ID作为参数,然后使用该ID运行PHP脚本,并接受PHP脚本的HTML输出,作为cURL post to DocRaptor生成PDF的一部分 示例shell脚本如下所示,我希望文档内容是我生成的HTML myHTML = usr/bin/php mytablemaker.php?id=$1 curl -H "Content-Type:application/json" -d'{"user_credentials"

我有一个创建大型复杂表的PHP脚本。我正在尝试设置一个shell脚本,它将接受一个ID作为参数,然后使用该ID运行PHP脚本,并接受PHP脚本的HTML输出,作为cURL post to DocRaptor生成PDF的一部分

示例shell脚本如下所示,我希望文档内容是我生成的HTML

myHTML = usr/bin/php mytablemaker.php?id=$1
curl -H "Content-Type:application/json" -d'{"user_credentials":"API_KEY", "doc":{"name":"docraptor_sample.pdf", "document_type":"pdf", "test":"true", "document_content":"myHTML"}}' http://docraptor.com/docs > docraptor_sample.pdf

如何正确执行此操作?

如果这是bash,那么类似的操作应该可以:

myHTML = $(usr/bin/php mytablemaker.php?id=$1)
curl -H "Content-Type:application/json" -d'{"user_credentials":"API_KEY", "doc":{"name":"docraptor_sample.pdf", "document_type":"pdf", "test":"true", "document_content":"'"$myHTML"'"}}' http://docraptor.com/docs > docraptor_sample.pdf
但是,您不要求HTML,而是要求HTML作为json字符串,因此,请使用PHP脚本将字符串编码为json,请参阅。或者在角色上做一个测试

另见:


如果这是bash,那么类似的方法应该可以工作:

myHTML = $(usr/bin/php mytablemaker.php?id=$1)
curl -H "Content-Type:application/json" -d'{"user_credentials":"API_KEY", "doc":{"name":"docraptor_sample.pdf", "document_type":"pdf", "test":"true", "document_content":"'"$myHTML"'"}}' http://docraptor.com/docs > docraptor_sample.pdf
但是,您不要求HTML,而是要求HTML作为json字符串,因此,请使用PHP脚本将字符串编码为json,请参阅。或者在角色上做一个测试

另见:


最好的方法是修改mytablemaker.php以考虑命令行用例。 e、 g.像这样:

if(isset($argv[1])) {
    $id=$argv[1];
} else {
    $id=$_GET["id"];
}
然后从BASH开始,您可以执行以下操作:

# Get HTML from PHP script and escape quotes and
# backslashes in string to comply to the JSON specification 
myHTML=$(/usr/bin/php -f mytablemaker.php $1 | sed -e 's/[\\"]/\\&/g')

# Put the value of myHTML in a JSON call and send it to the server
curl -H "Content-Type:application/json" -d'{"user_credentials":"API_KEY", "doc":{"name":"docraptor_sample.pdf", "document_type":"pdf", "test":"true", "document_content":"'"$myHTML"'"}}' http://docraptor.com/docs -o docraptor_sample.pdf
请注意在最后一行完成的字符串连接:

'first part'"second part"'third part'

最好的方法是修改mytablemaker.php以考虑命令行用例。 e、 g.像这样:

if(isset($argv[1])) {
    $id=$argv[1];
} else {
    $id=$_GET["id"];
}
然后从BASH开始,您可以执行以下操作:

# Get HTML from PHP script and escape quotes and
# backslashes in string to comply to the JSON specification 
myHTML=$(/usr/bin/php -f mytablemaker.php $1 | sed -e 's/[\\"]/\\&/g')

# Put the value of myHTML in a JSON call and send it to the server
curl -H "Content-Type:application/json" -d'{"user_credentials":"API_KEY", "doc":{"name":"docraptor_sample.pdf", "document_type":"pdf", "test":"true", "document_content":"'"$myHTML"'"}}' http://docraptor.com/docs -o docraptor_sample.pdf
请注意在最后一行完成的字符串连接:

'first part'"second part"'third part'

提供的示例没有提到document_url参数,但是DocRaptor的错误消息提到了

使用我从和中学到的知识工作代码


提供的示例没有提到document_url参数,但是DocRaptor的错误消息提到了

使用我从和中学到的知识工作代码



谢谢你,哈克雷!DocRaptor中的示例没有对HTML AFAIC进行编码。下面是他们的示例sh:是的,看看我说的json字符串是如何工作的:-如果PHP脚本输出的HTML包含一个示例,并且没有转义,移除服务会认为文档内容字符串到此结束-如果不是整个json都无效并且完全拒绝操作的话!。嘿,这生成了一个包含以下内容的PDF:usr/bin/php reports\u scorecard\u blank\u PDFMAKER.php?id=$1我将尝试不引用是的引用是错误的。如果在PHP文件中使用json_encode,也不需要HTML的外部引号,因为它们是PHP文件的一部分。这样调用PHP解释器肯定会导致以下错误:无法打开输入文件:mytablemaker.PHP?id=1无法将GET变量传递给命令行PHP解释器,除非你使用CGI版本。谢谢你!DocRaptor中的示例没有对HTML AFAIC进行编码。下面是他们的示例sh:是的,看看我说的json字符串是如何工作的:-如果PHP脚本输出的HTML包含一个示例,并且没有转义,移除服务会认为文档内容字符串到此结束-如果不是整个json都无效并且完全拒绝操作的话!。嘿,这生成了一个包含以下内容的PDF:usr/bin/php reports\u scorecard\u blank\u PDFMAKER.php?id=$1我将尝试不引用是的引用是错误的。如果在PHP文件中使用json_encode,也不需要HTML的外部引号,因为它们是PHP文件的一部分。这样调用PHP解释器肯定会导致以下错误:无法打开输入文件:mytablemaker.PHP?id=1无法将GET变量传递给命令行PHP解释器,除非你使用CGI版本。不知道你说的浓缩是什么意思?我正在尝试您的方法,无论是否使用PHP DocRaptor中的JSON编码,都会报告得到一个空字符串。您是否编辑PHP脚本以考虑命令行用例?如果您将echo$myHTML作为第二个命令添加到脚本中,该怎么办?错误消息帮助了我!它们还接受示例中未显示的文档url参数!现在就让它工作吧。谢谢@jerrygarciuh:如果与现有答案不同,请提供工作代码作为答案。然后选择一个你甚至可以自己选择的答案。谢谢你帮助这个网站变得更好。不知道你说的浓缩是什么意思?我正在尝试您的方法,无论是否使用PHP DocRaptor中的JSON编码,都会报告得到一个空字符串。您是否编辑PHP脚本以考虑命令行用例?如果您将echo$myHTML作为第二个命令添加到脚本中,该怎么办?错误消息帮助了我!它们还接受示例中未显示的文档url参数!现在就让它工作吧。谢谢@jerrygarciuh:如果与现有答案不同,请提供工作代码作为答案。然后选择一个你甚至可以自己选择的答案。谢谢你帮助这个网站变得更好。现在我很困惑。如果删除以myHTML=开头的行。。。剧本还能用吗?我想会的,你已经为自己省下了一些记忆:你是对的。。。我刚开始工作,老板就让我离开了。他决定用纱帽
服务和交付JPEG而不是PDF。我没有好好注意。将从答案中删除。但现在我感到困惑。如果删除以myHTML=开头的行。。。剧本还能用吗?我想会的,你已经为自己省下了一些记忆:你是对的。。。我刚开始工作,老板就让我离开了。他决定使用screencap服务,交付JPEG而不是PDF。我没有好好注意。将从答案中删除。