0

完璧主義者として、PHP によって出力された有効で正しくインデントされた HTML を持つことが好きです。

私は IT 志向のユーザーと一緒にいくつかの複雑な Web アプリケーションを持っています。彼らは、ソースを表示でき、文字化けした混乱が見られないようにしたいと考えています。

現在、私が書いたこの関数を使用しています:

function nl($tabs = 0)
{
    return "\r\n" . str_repeat("\t", $tabs);
}

次のように使用して、改行と必要な数のタブを追加します。

if(array_key_exists('field', $row)){
    echo '<td>' . $row['field'] . '</td>' . nl(4);
}

PHPに組み込まれているものはありますか、またはこのインデントを自動的に行うために使用できるクラスはありますか?

4

1 に答える 1

8

出力バッファを使用する場合、バッファをクライアント/ブラウザにフラッシュする前に、DOMDocument を使用して formatOutput を true に設定できます。

すなわち:

libxml_use_internal_errors( TRUE );

$dom = new DOMDocument();
$dom->validateOnParse = FALSE;
$dom->preserveWhiteSpace = TRUE;
$dom->formatOutput = TRUE;
$om->loadHTML( mb_convert_encoding( ob_get_contents(), 'UTF-8' ) );

libxml_clear_errors();

/*
 perform any other operations on dom elements you wish
*/

$buffer = $dom->saveHTML();
ob_end_clean();
echo trim( $buffer );/* send data to client/browser */
于 2014-07-06T16:09:04.500 に答える