Nasıl PHP'nin 'Kaynağı Görüntüle' html çıktı temiz [yinelenen] tutmak için

12 Cevap php

Bu soru burada zaten bir cevabı var:

12 Cevap

O da, beni rahatsız eden bir şey var. Yapabileceğiniz en iyi metni postprocess için düzenli kullanıyor. Sayfanızın başlamasından bu satırı ekleyin (ve size çıkış tamponlama ile ilk PHP hatayla karşılaşırsanız output buffering tahribat için hazırlanacak):

ob_start('ob_tidyhandler');

Gerçekten PHP inlining temiz çıktı alınamıyor. Ben kuvvetle gibi Smarty olarak çiftleşmiş motoru çeşit kullanarak öneririm. Kenara temiz çıkışından, şablon motorları karmaşık web siteleri sürdürülebilirliği ve okunabilirliği artırmak, kod ve tasarım arasındaki bazı mesafeyi muhafaza avantajı var.

i çok temiz, güzel girintili html ister itiraf. genellikle çünkü yaşıyorsanız, aynı nedenlerle, ben istediğiniz şekilde çalışmıyor. bazen manuel girinti ve linebreaks preserverd değil, ya da çünkü girinti sıfırlamak subtemplates arasında çalışmıyor.

ve makineler gerçekten umurumda değil. boşluk hakkında, yorumlarla ilgili, onlar umurumda olabilecek tek şey minified değil değil şeyler, bu nedenle ek boşluk ve yorumlar aslında karşı-üretken vardır. ama o kadar güzel *sigh*

firebugs mevcut değilse, bazen, ben sadece hata ayıklama için seviyorum. Çünkü zaman bu en i geçerli istek için elle html düzenli etkinleştirmek için bir seçenek var. dikkatli olun: düzenli otomatik (konfigürasyon seçeneklerine bağlı olarak) bazı hataları düzeltir, bu yüzden sizden bu olabilir aslında hide hataları.

"Sevimli" HTML çıktı olsun mu? Bunun üzerinden karıştırmak istediğinizde bir editörü içine çıkış HTML yapıştırarak olacak ve editör muhtemelen (veya editörler geçmeniz gerekir!) Doğru biçimlendirmek için bir seçenek olacaktır.

Ben (yani PHP tam olarak buydu çünkü) önerileri menfur bir ek çiftleşmiş bir dil kullanmak bulabilirsiniz. Sen tek boşluk veya sekme düzeltmek için her bir sayfası yavaşlatmak olur? Eğer bir şey, ben diğer yöne gidin ve remove kalan boşluklarla bir aracıyla her sayfayı çalışan meyledeceğini.

Sen kaç kez ben sekmeleri kullanılmış ve newlines ... yani olması benim oluşturulan HTML kodunu hata ayıklama benim çıkış temizledin var;

print "<table>\n";
print "\t<tr>\n";
print "\t\t<td>\n";
print "\t\t\tMy Content!\n";
print "\t\t</td>\n";
print "\t</tr>\n";
print "</table>\n";

Bu özel durumda GERÇEK önemli ise, bunu yapabilirsiniz ...

<ul><?php foreach($navitems as $nav):?>
  <li><?=$nav?></li><?php endforeach; ?>
</ul>

Bu kod istediğiniz gibi HTML olsa bile, daha az okunabilir, çünkü bence kötü. Rağmen

Ben çıkış nasıl temiz umurumda değil - bu ayrıştırmak için kolay olmalı onu üreten asıl kaynak kod - Benim için bir geliştirici olarak.

Ben çıktı incelenmesi ise, bu ona iyi bakmak için gerekli olsaydı ben, o kadar temiz düzenli aracılığıyla edeceğiz - ama validators ya ekstra boşluklar veya sekmeler umurumda değil.

Tel = daha hızlı yüklemeler daha az bayt - Aslında, herhangi koymak daha HTML çıktı dışarı boşluk şerit daha büyük olasılıkla. çok, ama bazen (tabii, çıkış Gzip Sıkıştırma daha yardımcı olsa) bir yüksek trafik senaryoda yardımcı olmaz.

Bunu yapmak yoludur:

    <ul>
<?php foreach($navitems as $nav):?>
      <li><?=$nav?></li>
<?php endforeach; ?>
    </ul>

Temelde tüm koşul ve döngü blokları manzarası içinde sola hizada bulunmaktadır. Bunlar iç içe eğer, ben bu yüzden gibi, PHP başlangıç ​​etiketinin içine girinti:

    <ul>
<?php foreach($navitems as $nav):?>
<?php     if($nav!== null) : ?>
      <li><?=$nav?></li>
<?php     endif; ?>
<?php endforeach; ?>
    </ul>

Ben kodu yağsız Bu şekilde, açıkça sunum mantığı görmek ve de temiz HTML çıkış yapar. Blokların içinde çıkış onları koymak tam olarak nerede.

Bir uyarı olsa da, PHP kapanış etiketi ?> sonra satırsonlarını yiyor. Bir <pre> bloğu içinde çıktısı gibi bir şey yaptığınızda bu bir sorun haline gelir.

<pre>
<?php foreach($vars as $var ) ?>
    <?=$var?>
<?php endforeach; ?>
</pre>

Bu irade çıktı:

<pre> 
            0            1            2            3            4            5        </pre> 

Bu kesmek tür, ama <?=$var?> sonra bir boşluk ekleyerek temiz yapar.

Aşırı kod blokları için üzgünüm, ama bu da uzun bir süre beni rahatsız olmuştur. Yaklaşık 7 ay sonra, yardımcı olur umarım.

Ben "okunabilir" Eğer bu kadar oluşturulan HTML olması önemlidir düşünüyorum neden ben gerçekten merak ediyorum "okuduğumda hakkında düştü. Yazık ki, bu yol ... düşünüyorum (ve başka yerlerde) epeyce Bu sayfada kişi vardı tarayıcı yani neden kod görünüyor yolu hakkında endişe bunu aynı okur.

İlk olarak, tutmak "kod" hemen hemen tüm durumlarda okunabilir kılan hata ayıklama (ya da sizin ya da gelecekte bir geliştirici tarafından genel olarak içinde çalışan) çok daha kolay.

Dahası ve en önemlisi, bu quality of workmanship olarak anılacaktır. Bir Yugo ve Mercedes arasındaki fark. Evet, ikisi de cars ve her ikisi de "B" noktadan noktaya "A" dan götürecektir. Fakat, fark not görülmektedir çok ne ürünün kalitesindedir. Bir proje içine atlama ve ilk onlar hala aynı şekilde çalışır ve ne yaptıklarını hiç gurur olduğunu düşündüm çünkü tüm, sadece şeylerin mantıklı edebilmek için başkasının kodu temizlemek zorunda daha kötü bir şey yoktur. Temizleyici kod DAİMA size yarar sağlayacak ve onunla başa çıkmak için herkesten söz değil ne de gurur ve uzmanlık düzeyi yansıtır.

Biçimlendirilmemiş kaynağını görüntüleyerek birden fazla iç içe divlere ve birçok kayıtları bu divs içeren her ile çok can sıkıcı bir durum ..

Ben Phoenix Editör denilen bu firefox addon geldi. Bunu en editörü sizin kaynağını görüntüleyebilir ve ardından "biçimini" tıklayın ve bir cazibe gibi çalışır!

Link Here

Xtemplate try http://www.phpxtemplate.org/HomePage onun yanı gibi id olarak belgelenmiştir, ancak ive büyük etkisi kullanmadım

Eğer böyle bir şey olurdu

    <?php
$response = new xtemplate('template.htm');

foreach($navitems as $item)
{

$response->assign('stuff',$item);

$response->parse('main.thelist');

}
$response->parse('main');
$response.out('main');
?>
 And the html file would contain

    <! -- BEGIN: main -->
<html>
<head></head>
<body>
    <ul>
<! -- BEGIN: thelist -->
      <li>{stuff}</li>
<!-- END: thelist -->
</ul>
</body>
</html>

Ben bir temiz kaynak bu kaynaklardan, komut veya kod çok hızlı ve basit üzerinde, çok önemli Onun iyi yorumladı, iyi yapılandırılmış ve bakımlarda olduğunu Katılıyorum. Sen gelen yerlerde ana gerektiren kullanarak (prior.php, header.php, title.php, content.php, post.php) parçalanan içine bakmalı, sonra ayrıştırmak ve düzen olacak prior.php altında yeni bir fonksiyon yazmak patlayabilir yöntem ve bir dize ayırıcı kullanarak html etiketleri, sekme indeksi için bir tamsayı var ve her </ tamsayı ardından fonksiyonları string içinde - her < ve {[(2) ]} ama /> ve </ .... dize tamsayı + + vardır ve hepsi düzgün yerleştirilmesi gereken, kullandığınız bir sekmeye başka bir dize tabIndex yeniden inşa etmek için döngü için içeriği kez tamsayı.