1

大規模で複雑なテーブルを作成する PHP スクリプトがあります。ID を引数として受け取り、その ID を使用して PHP スクリプトを実行し、DocRaptor への cURL 投稿の一部として使用する PHP スクリプトの HTML 出力を受け取って PDF を作成するシェル スクリプトをセットアップしようとしています。

シェル スクリプトの例は次のようになります。document_content を生成した 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

これを正しく行うにはどうすればよいですか?

4

3 に答える 3

2

最善の方法は、その mytablemaker.php を変更して、コマンド ラインのユース ケースを考慮に入れることです。たとえば、次のようにします。

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'
于 2012-06-27T22:51:40.710 に答える
2

それが 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 としてエンコードする必要がありますjson_encode。またはaddcslashes($output, '"')"キャラクターに対して a を実行します。

同様に参照してください:

于 2012-06-27T22:40:44.157 に答える
0

提供された例では、document_urlパラメーターについては言及されていませんでしたが、DocRaptorのエラーメッセージについては言及されていました。

hakreanttixから学んだことを使用した作業コード!

curl -H "Content-Type:application/json" -d'{"user_credentials":"API_KEY", "doc":{"name":"docraptor_sample.pdf", "document_type":"pdf", "test":"false", "document_url":"'"http://foo.com/tablemaker.php?CTN=$1"'"}}' http://docraptor.com/docs -o docraptor_sample.pdf
于 2012-06-28T22:56:11.980 に答える