3

ドキュメント [完全を期すために、lilypond の記譜法が挿入されたマークダウン ファイル] を処理するための小さなコマンド ライン スクリプトを作成しました。

#!/usr/bin/env php
<?php    

$body = "";

...
// text gets processed here and stored in $body
...

ob_start();
include 'template.php';
file_put_contents(
    __DIR__ . '/' . str_replace('.md', '.html', $argv[1]),
    ob_get_flush() 
);

template.php

<!DOCTYPE html>
<html lang="en">
<head>
  ...
</head>
<body>
  <div id="wrapper">
  <?php echo Markdown($body); ?>
  </div>
</body>
</html>

私が電話するとき:

$ ./phlily source.md

ファイルは適切に生成されますが、テンプレートの内容もコンソールに出力されます:

GNU LilyPond 2.14.2
Processing `/Users/.../phlily/ly/4add05a74d249f34b3875ef6c3c1d79763927960.ly'
Parsing...
Converting to PNG...
<!DOCTYPE html>
<html lang="en">
<head>
...
</html>

LilyPond スクリプトからのエラーと警告を読みたいので、ターミナルの html ウォールの後ろに埋もれているので面倒です。

簡単に言えば、CLI 環境で出力バッファをシャットダウンすることは可能ですか?

4

1 に答える 1

7

私はあなたがob_get_clean()代わりに欲しいと思うob_get_flush()

ob_get_clean :

ob_get_clean — 現在のバッファの内容を取得し、現在の出力バッファを削除する

ob_get_flush :

ob_get_flush — 出力バッファをフラッシュし、文字列として返し、出力バッファリングをオフにします

この場合、「フラッシュ」は「標準出力に送信」を意味します。

file_put_contents(
    __DIR__ . '/' . str_replace('.md', '.html', $argv[1]),
    ob_get_clean() 
);
于 2012-08-26T19:32:20.287 に答える