file_get_content ve değişken sorun

0 Cevap php

Ben bazı değişkenler ile html bir parça kapmak için file_get_content kullanarak bir fonksiyon Thats kulüpler var. fikri bu işlev db alıp geri bazı şeyler ile değişkenler güncelleştirmek için daha sonra. Ancak çıkışında değişken sadece yerine My Name $ myNameVar okur. Benim kod yapıştırın izin.

    function query($query,$item)
    {
        $this->item = file_get_contents("/pages/items/".$item.".php");
        $this->queryResult = mysql_query($query);
        if(mysql_num_rows($this->queryResult))
      {
            while($row = mysql_fetch_assoc($this->queryResult))
            {
                extract($row);
                // $myNameVar = My Name;
                // in the finished code there will be a bunch (15 or more) vars
                // that needs to be updated in the Item file so the vars
                // must be updated automatically
                return $this->item;

            }
      }
    }

Ve item.php içeriği:

<p>My name is <span style="color: #000;">$myNameVar</span></p>

İşte işlevi çağrısı:

<?php echo $queryDb->query("SELECT * FROM sometable","item");?>

Ve burada çıktı:

My Name is $myNameVar

Olması gerekir:

My Name is My Name

Ben%% için item.php dosyasındaki değişken yerine ve böylece (farklı işlevi) gibi değişkenleri güncellemek için bir foreach çalıştırmayı denedim:

    function query($query,$item)
    {
        $this->item = file_get_contents("/pages/items/".$item.".php");
        $this->queryResult = mysql_query($query);
        if(mysql_num_rows($this->queryResult))
      {
            while($row = mysql_fetch_assoc($this->queryResult))
            {
                foreach ($row as $key => $value)
                {
                    $this->item = str_replace("%".$key."%",$value,$this->item);
                }
                return $this->item;

            }
      }
    }

Bu ne yazık ki bu sadece her satır için ilk öğeyi iade, kısmen çalışıyor. Yani ilk satır $ myNameVar içinde = Joe ve ikinci sıra $ myNameVar = James Her iki paragraf böyle Joe olarak adını listelemek isterseniz: Joe Joe değil, Joe James olması gerektiği gibi.

Herhangi bir yardım büyük mutluluk duyacağız :)

0 Cevap