Ich verstehe was du meinst. Du willst aus deinem echo ein schön eingerücktes HTML haben.
Wenn du nur echo verwenden willst muss ich dich leider enttäuschen. Es gibt in php leider keine weiteren Parameter mit denen man es steuern kann.
Aber PHP hat ja einen XML-Parser zum schreiben und lesen von XML. Dieser hat 2 interessante Funktionen
XMLWriter::setIndentString
und
XMLWriter::setIndent
Mit diesen kannst du ein eingerücktes XML Schreiben.
Jetzt ändern wir das ganze etwas für HTML ab.
[code]<?php
$memory = xmlwriter_open_memory();
xmlwriter_set_indent($memory, true);
xmlwriter_start_dtd($memory,‘html’);
xmlwriter_end_dtd($memory);
xmlwriter_start_element ($memory,‘html’); //
xmlwriter_start_element($memory,‘head’); //
xmlwriter_write_element ($memory,‘title’, ‘Indent document’);
xmlwriter_end_element($memory); //
xmlwriter_start_element($memory,‘body’); //
xmlwriter_start_element($memory,‘ul’); //
xmlwriter_write_element ($memory,‘li’, ‘One Item’);
xmlwriter_write_element ($memory,‘li’, ‘Another Item’);
xmlwriter_write_element ($memory,‘li’, ‘Another Item’);
xmlwriter_end_element($memory); //
xmlwriter_end_element($memory); //
xmlwriter_end_element($memory); //
xmlwriter_end_dtd($memory);
$xml = xmlwriter_output_memory($memory);
echo($xml);
?>[/code]Die Einrückungen werden jetzt von xmlwriter_set_indent() erledigt. Mit einer kleinen Klasse könnte sich der Mehraufwand durchaus lohnen.
Edit:
Verfügt tidy über ein automatisches einrücken? Den sonst könnte man es ja direkt mit dem heredoc oder
nowdoc syntax schreiben.