Приводить в порядок PHP и HTML-код?

Интересно, может ли кто-нибудь помочь мне, я использовал встроенную функцию HTML tidy и eclipses, чтобы привести в порядок мой код. У меня большие проблемы со следующими ситуациями...

  1. когда HTML разделен между файлами с помощью включений, структура результата с правильными отступами помогает при отладке с помощью инструментов браузера.

  2. PHP и HTML при совместном использовании. например, операторы PHP if вокруг HTML-кода, где вы не будете использовать правильный отступ как для PHP, так и для HTML. (автоматизация этого Как правильно сделать отступ в смешанном коде PHP/HTML ?)

Ситуация, с которой я могу жить, и есть способы ее обойти. Однако я был бы признателен, если бы кто-нибудь мог предложить решение второй ситуации.

Инструменты Я использую eclipse 3.6, Aptanna 2.05 PDT 2.2


person Community    schedule 27.08.2010    source источник


Ответы (1)


Вы можете использовать HTML Tidy из PHP для очистки вывода. Используйте ob_start() и других, чтобы получить весь вывод HTML в виде строки, а затем отправьте его через Tidy. Тем не менее, вы можете использовать какое-то кэширование, если сделаете это.

<?php

    function callback($buffer)
    {
        // Clean up

        $config = array(
            'indent'         => true,
            'output-xhtml'   => true,
            'wrap'           => 200);

        return tidy_repair_string($buffer, $config, 'utf8');
    }


    // Do some output.

    ob_start("callback");
    ?>
        <html>
            <body>
                <p>Outputting stuff here</p>
                <p>
                    Testing a broken tag:
                    <span> This span should be closed by Tidy.
                </p>
            </body>
        </html>
    <?php
    ob_end_flush();

?>
person geon    schedule 27.08.2010
comment
Спасибо, это действительно хорошее решение для динамического вывода. Но как насчет встроенного PHP и HTML в исходный код? например... ‹?php if (оператор) : ?› ‹div› ‹p› Это пример. ‹/p› ‹/div› ‹?php endif; ?› Я полагаю, что в этой ситуации HTML-приборка не может правильно установить отступ PHP. - person ; 27.08.2010
comment
В этом смысл буферизации вывода с обратным вызовом. Вы буферизуете весь вывод сценария, а затем запускаете его через Tidy в качестве ПОСЛЕДНЕГО действия перед отправкой клиенту. В этот момент вся страница была сгенерирована, так что вы получаете все это красиво отформатировано. - person Marc B; 27.08.2010
comment
Извините, что немного медленно. Итак, вы имеете в виду запуск кода с обратным вызовом HTMLtidy, получение вывода HTML, а затем вставку отформатированного HTML обратно в отформатированный код PHP? .. Таким образом, и HTML, и PHP правильно отформатированы в исходном коде и выводе. - person ; 27.08.2010
comment
Это то, что я пытаюсь автоматизировать для 2. stackoverflow.com/questions/1155799/ - person ; 27.08.2010