Veritabanından Echo html + php

3 Cevap php

Ben bu yüzden son zamanlarda ben PHP öğrendim ve bir MySQL veritabanı ve bir özel bölüm ve verilen echo içeriğinin içine taşındı, HTML metinleri bir sürü fırsatlar bir site üzerinde çalışıyorum. Şimdi bu nispeten iyi çalışır, HTML düzgün gösterir. Ancak, bazı yerlerinde ben PHP fonksiyon çağrıları dahil ettik ve bu değerlendirilecek görünmüyor - şey yapıyor asla değil, sadece kaynak kod eklenir olsun (ve sayfa izleyici için böylece görünmez). Bunlar basit iken onlar çalışması yaptı. Html dosyaları.

Bunu nasıl çözebilirim?

Örneğin, bir metin bu gibi bakabilirsiniz:

<?php printChapterName(); ?>
<p>Some text</p>
...
<?php showImage($name, $alt-text); ?>
...

Bu sadece sayfadaki metni gösterir.

Edit: fonksiyonlar echo: Bazı HTML ing.

3 Cevap

Bu bir ne istediğinizi yapmalıyım: (function evalInlinePHP ve bunu kullanarak preg_replace_callback)

 $text = "<?php printChapterName(); ?> <p>Lorem ipsum</p>";
 function printChapterName(){ echo '<h1>Chapter #1</h1>'; }

 function evalInlinePHP($m)
 {
  ob_start();
  eval($m[1]);
  return ob_get_clean();
 }

 echo preg_replace_callback("/<\?php(.*)\?>/", 'evalInlinePHP', $text);
 //prints <h1>Chapter #1</h1> <p>Lorem ipsum</p>

Ama DB php fonksiyon kaydetmek ve daha sonra değerlendirmek için not a good very bad fikir olduğunu lütfen unutmayın. Eğer gerçekten bu metinleri depolamak ve görüntülemek için nasıl yeniden düşünmek gerekir

Eh, onlar yazılı ve yorumlanır olsun neden olduğunu, bu çağrıları yankılanıyor ediyoruz.

I reckon you should rethink the way you're saving your text in the database. Why using showimage($name) when you can simply store an <img> tag? If the images go in the same places in all the pages (e.g. if you have an image associated to each page), make another column with the img src in your table and output the image in its place with another PHP call.

Örneğin, (bu kaba bir örnek, ama siz anladınız) hatları üzerinde bir şey:

$res = mysql_query("SELECT text, image FROM contents WHERE id_pag = ".$id);
$row = mysql_fetch_array($res);
// Output the image
echo '<img src="'.$row['image'].'" />'. $row['text'];

eval() PHP sizin veritabanından gelen kodu değerlendirir böylece kullanın. Bunu PHP kodu sorumlu olan tek kişi değilseniz bu doğası gereği tehlikeli olduğunu unutmayın. Ayrıca bu fonksiyonlar mevcut sayfada tanımlanan emin olun.