Nasıl bir php script bir içerme dosyası her satırında bir sekme eklemek yapabilir?

3 Cevap php

Benim HTML içinde, bir dosyayı içeren bir php komut dosyası var. Bu noktada, kod 2 sekme girintili. Ne yapmak istiyorum php script her satıra iki sekme ekleyin olun. İşte bir örnek:

Ana sayfa:

<body>
    <div>
    	<?php include("test.inc"); ?>
    </div>
</body>

Ve "test.inc":

<p>This is a test</p>
<div>
    <p>This is a nested test</p>
    <div>
    	<p>This is an more nested test</p>
    </div>
</div>

Ne olsun:

<body>
    <div>
<p>This is a test</p>
<div>
    <p>This is a nested test</p>
    <div>
    	<p>This is an more nested test</p>
    </div>
</div>
    </div>
</body>

Ne istiyorum:

<body>
    <div>
	 <p>This is a test</p>
	 <div>
    		<p>This is a nested test</p>
    		<div>
    			<p>This is an more nested test</p>
    		</div>
    	</div>
    </div>
</body>

Ben sadece içerme dosyası giden sekmeler ekleyebilir biliyoruz. Ben belgeyi biçimlendirmek Ancak, VS olanlar kaldırma tutar.

3 Cevap

Tarayıcıya gönderilmeden önce test.inc dosyasında,, output buffering PHP script tüm çıkış yakalamak için kullanabilirsiniz. Daha sonra işlem sonrası, istediğiniz sekme ekleyin ve onu göndermek için olabilir. Dosya üzerinde üstünde eklemek

<?php
  ob_start();
?>

Sonunda, ekleme

<?php
  $result = ob_get_contents();
  ob_end_clean();
  print str_replace("\t" . $result, "\n", "\n\t");
?>

Bu çıkışa bağlı olarak, bellek yoğun olabilir ve çalışır olarak müşteriye kısmi sonuçlarını göndermesini senin dosyasını dahil önleyecektir - Ben mutlaka bu çözüm abone yok. Sen çıkışını yeniden biçimlendirme, ya da özel "baskı" sargının bazı formunu kullanarak daha iyi olabileceğini sekmeler şeyler (ve sürekli HTML çıkışı için heredocs yazdırmayı kullanın).

Edit: Yorumlarınız tarafından önerildiği gibi, str_replace kullanın

Ben çözüm kolayca yapılabilir sanmıyorum. Sen bir müşteriye sunmadan önce HTML Tidy kaynak kodunu temizlemek için kullanmayı düşünebilirsiniz. İnternette good tutorials bunun için vardır.

Kolay çözüm içerme dosyası giden sekmeler eklemek, ancak bunun yerine değişmez sekmeleri kullanarak, \t kaçış dizisini kullanın.