我正在尝试在我想要执行的内部加载PHP
的文件,我也希望能够用我选择的值替换特定的单词。
例如,我有2个文件,index.php
和test.php
Index.php
<?php
$stmt = $dbh->prepare("SELECT * FROM users WHERE `id` = :id");
$stmt->bindValue(":id",$_COOKIE[id]);
$stmt->execute();
$in = $stmt->fetch(PDO::FETCH_ASSOC);
function callback($buffer)
{
$ID = 'hesdfsdfsdy';
$arr = array(
"{ID}" => ''.$in['id'].'',
"{TITLE}" => 'Testttingggg'
);
return (strtr($buffer,$arr));
}
ob_start("callback");
include 'test.php';
?>
一切正常,但{ID}
空出来的事实除外,因为它不会显示$in['id']
作为值。如果我使用$ID
代替$in['id']
,则会显示"hesdfsdfsdy"
的值,就像它的意图一样。所以有些人与$in
不太合作。如果我在$in['id']
中使用test.php
,则可以正常使用。它只是因为它不想与替代品合作。
test.php
<?php
echo '{TITLE} - '.$in["id"].';
?>
所以我的问题是,为什么在使用$in["id"]
时我无法让{ID}
工作。
谢谢
答案 0 :(得分:1)
您的变量$in
不在callback
范围内。
<?php error_reporting(E_ALL);
$id = 123;
function callback($buffer)
{
global $id;
return strtr($buffer, ['{ID}' => $id]);
}
ob_start('callback');
echo 'Id value: {ID}';