PHP: Baskı HTML Dostu Kodu?

5 Cevap php

Bir PHP fonksiyonunun o HTML (birden çok satır) yazdırırken herhangi bir teknik olup olmadığını ben HTML kodu yapmak için orada merak ediyorum iyi görünüyorsun?

Özellikle, yeni hatlar ve sekmeler. Açıkçası, ben arkası sahneleri HTML etiketleri uygun yeni hatlar ve sekmeleri ile iyi bakmak istiyorum. Ancak, HTML yazdırıyor PHP işlevini çağırdığınızda bağlı olarak, ben PHP başlangıç ​​sekmesi sayısını geçmek zorunda istemiyorum 2, 3, 4, vs, 1'den sekmeleri başlamak gerekebilir HTML yazdırıyor fonksiyonu.

Yani, herkes PHP ile HTML dostu kodu yazdırmak için genel amaçlı bir yol biliyor mu? Yoksa diyor, ben eksik bir tasarım prensibi olduğunu "bir PHP fonksiyonu birden çok HTML satır baskı yapmayın." ...

Teşekkürler,

Steve

5 Cevap

Markup Cleanup

Orada bazı harika codetools ki irade temizleme (yani, boşluğu ayarlamak) ve onarım (yani, yakın açık etiketleri) vardır.

Tidy daha popüler html temizleme / onarım araçlarından biridir. Sen on-the-fly PHP'nin çıkış tamponları kullanarak Tidy aracılığıyla, senaryonun çıkışını ayrıştırmak olabilir.

Zend Dev Zone Intro - http://devzone.zend.com/article/761 Tidy Docs in PHP Manual - http://www.php.net/manual/en/book.tidy.php

Ve şimdi, önemsiz bir örnek, yay!

<?php
ob_start();

echo '<div><b> messy</b> <div> <i>blarg</I></div>';
echo '  <div>code rawr!</div>';

$output = ob_get_clean();

$tidy = tidy_parse_string($output);
tidy_clean_repair($tidy);
echo $tidy;
?>

Templating System

Sen mantığı (php kodu) ve sunum (html / biçimlendirme / vb) uygulama parçaları ayırmak için bir çiftleşmiş sistemi kullanılarak yapılmalıdır.

Bu uygulamayı kullanarak, korumak ve hata ayıklama için kod kolaylaştırır, diğer şeyler arasında, gibi birçok avantajı vardır.

Bu tartışma büyük bir konu olduğunu ve hemen hemen her zaman çerçeveler ve MVC gider. Kaynakların binlerce var, işte birkaçı: P

Writing a Template System in PHP - http://www.codewalkers.com/c/a/Display-Tutorials/Writing-a-Template-System-in-PHP/
Separation of Business Logic from Presentation Logic in Web Applications - http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=21

Ben rahatsız olmaz. Hazır kundakçı gibi DOM-denetim araçları ile, iyi bakmak okumak için bir bilgisayar için tasarlanmış bir şeyi yapmaya hiçbir nokta israf zamanı var. this question çok konuda diğer insanların görüşleri için bkz.

Geçerli XHTML üreten eğer, sen, o buffer your output ve sonunda yapabilirsiniz:

$dom = new DomDocument (('1.0', 'utf-8');
$dom->loadHtml (ob_get_clean ());
$dom->formatOutput = true; 
echo $dom->saveXML ();

if you're using a framework you can probably make this work as a plugin or filter. this way it's also work if you embed template into other template or use output from helper

HTML'nizi bir şablon sistemi kullanarak ve sırayla şablonları tutarak üreten Bunu yapmanın basit bir yolu

Php ile html baskı olmamalıdır. Bir şablonun içinde php kestirme sözdizimi kullanın.

<h1><?= $page_title ?></h1>
<p><?= page_content ?></p>

yerine

<?php

echo "<h1>" . $page_title . "</h1>";
echo "<p>" . $page_content . "</p>";

?>