У меня есть функция, которая использует file_get_content, чтобы получить кусок HTML с некоторыми переменными в нем. идея состоит в том, чтобы затем обновить vars с некоторыми вещами, которые эта функция извлекает из базы данных и возвращает ее. Однако на выходе переменная просто читает $ myNameVar вместо My Name. Позвольте мне вставить мой код.
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;
}
}
}
И содержание item.php:
<p>My name is <span style="color: #000;">$myNameVar</span></p>
Вот вызов функции:
<?php echo $queryDb->query("SELECT * FROM sometable","item");?>
А вот и вывод:
My Name is $myNameVar
Когда это должно быть:
My Name is My Name
Я попытался заменить переменную в файле item.php на %% и запустить foreach для обновления переменных следующим образом (другая функция):
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;
}
}
}
Это работает частично, к сожалению, это просто возвращает первый элемент для каждой строки. Поэтому, если в первой строке $ myNameVar = Joe и во второй строке $ myNameVar = James в обоих абзацах имя Джо будет выглядеть следующим образом: Джо Джо, а не Джо Джеймс, как должно.
Любая помощь будет принята с благодарностью:)