Bir dize için en içerir çıkış tasarruf?

4 Cevap

Possible Duplicate:
Storing echoed strings in a variable in PHP

Ben herhalde

<?php include "print-stuff.php"; ?>

print-stuff.php o dahil edildiğinde, HTML basılı alır demektir PHP / HTML şablonu içerir. Ben başka bir yerde kullanmak için kaydedebilir, böylece bir dize olarak bu HTML yakalamak için herhangi bir yolu var mı?

print-stuff.php ayrıca çevredeki kod bağlıdır (yaratır / değişkenleri değiştirir) mantığını gerçekleştirir, çünkü başka bir yerde include deyimi hareket, bir seçenek değildir. Olduğu gibi, kendi mantığını terk ederken ben sadece dosyanın çıktısını taşımak istiyorum.

4 Cevap

Sen Output Buffer bu HTML gösterilmez ve değişken yerine koymak emin olmak için olabilir. (PHP hala çalışır, ancak HTML çıktı değişkeni olarak yer alacak)

ob_start();
include "print-stuff.php";
$contents = ob_get_contents();
ob_end_clean();

....

Çıkış tamponlama bakabilirsiniz.

http://us2.php.net/manual/en/function.ob-start.php

Bunu yapabilirsin yerine stdout bir tampon içinde yazdırın.

ob_start();
include 'print-stuff.php';
$printedHTML = ob_get_clean();

Dürüst olmak gerekirse ben buraya geldi ve ah-ha gitti, ben bu cevabı biliyorum! Sonra aşağı baktım ve yaptım daha önce diğer insanların ona lazım gördüm.

Ama, bunun halt için, böyle yapın:

ob_start();
include 'something.php';
$output = ob_get_contents();
ob_end_clean();