php echo dahil

9 Cevap php
echo ("<div style=\"text-align:center\">" . include ('file.php') . "</div>\n");

Ben neden emin değilim, ama benim komut o çizgiyi koymak zaman ben boş bir ekran olsun: (

9 Cevap

echo "<div style=\"text-align:center\">";
include ('file.php');
echo "</div>\n";

Burada bağlamak için hiçbir mantıklı böylece dosyanın ayrıştırma sonucu dönmez içerir.

Bu kod parçası çalıştırırken:

echo ("<div style=\"text-align:center\">" . include ('temp-2.php') . "</div>\n");

(Which I copy-pasted from your example, only changing the name of the file)

Ben bu uyarı alıyorum:

Warning: include(temp-2.php</div> ) [function.include]: failed to open stream: No such file or directory

Değil () include direktifi için ne bekliyoruz yapıyorsun emin ...


Actually, example #4 on the include manual page looks like it might explain this :

<?php
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// works
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}
?>


And, indeed, rewriting your code to this :

echo ("<div style=\"text-align:center\">" . (include 'temp-2.php') . "</div>\n");

Hiçbir uyarı - ve dosya aslında doğru yer almaktadır: çok daha iyi çalışır.


As a sidenote : if you are getting a white screen, it's probably because your configuration "hides" errors and warnings -- which is not quite nice for a development environnement : having those displayed would halp you quite a bit.

Bunu değiştirmek için, php.ini dosyasındaki error_reporting and display_errors seçeneklerini kullanabilirsiniz.

Bunu birine erişiminiz yoksa ya da, kullanabilirsiniz error_reporting and ini_set - yazısının başında böyle bir şey yapacağım:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

Not: Tabii ki, bunları görüntülemek değil üretim ortamında bunu istiyorum, hataları günlüğe hangi üzerinde (log_errors bakınız), ve yoktur.

Ben böyle bir şey yapmak gerekir düşünüyorum:

ob_start();
include('file.php');
$contents = ob_get_clean();

echo ("<div style=\"text-align:center\">" . $contents . "</div>\n");

yönergesi şey dönmez, bu yüzden bir dizeye eklemek için çalışıyor işe gitmiyor "include".

include is not a function but a special language construct. That’s also the reason why you don’t need the parenthesis around the “parameter” as include yalnızca bir "parametre" vardır. Parantez içinde o sarma parantez içinde başka bir değer kaydırma gibi:

1 === (1) === ((1)) === (((1))) === …

Bunun yerine parantez içinde bütün yapı kaydırmak gerekir:

echo "<div style=\"text-align:center\">" . (include 'file.php') . "</div>\n";

include dahil komut dosyası çıktı dönmek ama bunu doğrudan yazdıran olmadığından Ancak, çıkış tamponu ile bu dosyayı dahil senaryosuna dönmek gerekir:

<?php // file.php
    ob_start();
    // …
    return ob_get_clean();

Bu işe olur. Ama ben bunu yapmak istiyorum sanmıyorum. Yani bu muhtemelen oldukça kolaydır:

echo "<div style=\"text-align:center\">";
include 'file.php';
echo "</div>\n";

Bu arada: echo, print, exit ve die olan özel bir dil de oluşturur. Ayrıca bkz http://stackoverflow.com/questions/1163473/requireonce-or-die-not-working

çıkışına file.php içeriğini muhtemelen kullanmak isteyeceksiniz http://us3.php.net/file%5Fget%5Fcontents

file.php bir şey var mı? Boş olabilir, ya da bir şey bir hata neden olabilir.

Sadece görünen kısmı, tarayıcınızda kaynak koduna bakın. Genellikle Ctrl + U tuşlarına basarak yapabilirsiniz Sadece boş bir div elemanı çıkışını ise, tarayıcıda boş bir ekran göreceksiniz. Ve unutmayın. Php dosyalarını büyük olasılıkla çıkış olmaktan önce kurulum işlendiğinden, hiç onlara inbetween <?php ?> etiketleri ve kodu görmek olmaz demektir.

Ben hiç düşünmemiştim returns a string yazdırmak olabilecek bir fonksiyonu olarak bulunur.

Reference Manual eğer bir şey, bir Boole değeri döndürür önerir.

File.php sonunda fazladan bir satır sonu var mı?