PHP ile dinamik HTML gibi

3 Cevap php

Ben dahil bir HTML dosyası içinde yer PHP değişkenler var. Bu yürütme en iyi yolu nedir?

//contents of file1.php
$variable1 = "text 1";
$variable2 = "text 2"
$newContent = include('file2.php');
echo $newContent;

//contents of file2.php
<p>standard HTML with PHP... <strong><?=$variable1?></strong></p>
<p><?=$variable2?></p>

Bu genel bir yöntem Tamam kabul ama burada gerçek kod çalışmaz. I () file_get_contents () kullanın veya dahil etme, nasıl çıktı, doğru içeriği için içeren dosya içinde PHP idam mı?

Ben gibi bir şey kullanıyor olmalıdır HTML>>>

3 Cevap

Ne yaptığınızı gayet iyi, ve çoğu insan aynı tam yöntemi kullanın göreceksiniz. Ben şahsen PHP kısa etiketleri (bazı ana etkinleştirmek yok) kullanmak istemem, ama bu bir tercih meselesi.

Eğer kısa etiketler etkin yok gibi Edit: düzenlemeden başı olarak, öyle görünüyor. Lütfen ini kontrol edin (http://php.net/manual/en/ini.core.php). Clownbaby bahseder gibi, PHP 6 onları deprecate çünkü Ama really, kısa etiketleri kullanarak olmamalıdır. Eğer gelecekte kodunuzu prova umurumda değil bile, onlar (kod çalışmıyor çünkü belirgin olan) hala sıkıntılı konum. <?php echo $variable1; ?> geçmek ve iyi olacak.

Ben bile en çerçeveler kullanmak, kod iyi olduğunu düşünüyorum ...

kısa etiketleri kullanımı ile ilgili, bazı sunucular bu, işte ben kullanmak bir çözüm izin vermez:

if ((bool) @ini_get('short_open_tag') === FALSE){
   echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents("path/to/file2.php"))));
}else{
   $newContent = include("path/to/file2.php");
   echo $newContent;
}
$newContent = include('file2.php');
echo $newContent;

Burada echo bir şey gerekmez. Sadece PHP dosyası içinde herhangi bir kod çalıştırmasına ve sayfaya interpole şablon tükürmek gerekir dahil. include, bu genellikle görmezden nadiren kullanılan bir özellik bir değer döndüren gibi bir şey var iken.

Ekhaled dediği gibi, kısa etiketlerini etkinleştirmek veya daima destekli <?php ... ?> işleme talimatı tarzı sözdizimi ile bunları değiştirmeniz gerekebilir.

Ancak, HTML içinde dahil zaman htmlspecialchars her metin dizesi için önemlidir, ya da potansiyel bir XSS güvenlik delik var.

<?php
    function h($text) {
        echo(htmlspecialchars($text, ENT_QUOTES));
    }
?>
...

<p>standard HTML with PHP... <strong><?php h($variable1) ?></strong></p>
<p><?php h($variable2) ?></p>