Может ли PHP анализировать или определять текущий уровень отступа тега в исходном документе? - PullRequest
3 голосов
/ 26 октября 2011

Для тех из нас, кто все еще встраивает PHP в структуру HTML, есть ли способ проанализировать уровень отступа (в пределах источника) текущего оцениваемого оператора / тега PHP?

Рассмотрим следующий блок:

<html>
    <body>
        <div class="nav">
            <?php insert_nav_menu() ?>
        </div>
    </body>
</html>

<?php
    function insert_nav_menu(){
        $current_indent_level = {get current indent level of tag in source};
        $indent = ( $current_indent_level ) ? str_repeat( "\t", $current_indent_level ) : '';

        echo "{$indent}<p>Insert nav menu here...</p>\n";
    }
?>

Существует ли какой-либо известный метод прагмы или самоанализа, который покажет что-нибудь о строке, на которой был сделан вызов функции, так что HTML-код, сгенерированный функцией PHP, при просмотре в исходном браузере будет отображатьотступов

Ответы [ 2 ]

0 голосов
/ 27 октября 2011

Чтобы вы знали, PHP ничего не знает о HTML.
Как и в SQL. Или JS.
Для PHP это только строки без особого значения.
Это работа программиста, а не программы.

Если вы хотите узнать уровень отступа, вы должны посчитать его.

А постобработка, о которой все здесь говорят, вам не поможет.

0 голосов
/ 27 октября 2011

Как упоминал @Borealid, я бы посмотрел на постобработку с использованием PHP: Tidy - http://www.php.net/manual/en/tidy.examples.basic.php

...