2016-03-19 18 views
2

私は実行したいファイルの中にPHPというファイルをロードしようとしています。また、特定の単語を私が選択した値に置き換えることもできます。strtrの配列値としてPHPを使用する

だから、たとえば、私は2つのファイル、index.phptest.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'; 
?> 

を持っているすべてが、それはのように$in['id']は表示されませんよう{ID}が空に出てくるという事実を除いて、取り組んでいます値。 $in['id']の代わりに$IDを使用すると、意味するように"hesdfsdfsdy"という値が表示されます。だから何かはかなり$inで動作していません。 test.phpの中に$in['id']を使用すると問題なく動作します。その代わりに交換作業をしたくないということだけです。

test.php

<?php 
echo '{TITLE} - '.$in["id"].'; 
?> 

だから私の質問は{ID}を使用するときに、なぜ私は$in["id"]が仕事を得ることができない、です。

+0

'$ stmt-> bindValue( "ID"、$ _ COOKIE [ID]);' '$ stmt-> bindValue(する必要が "ID"、$ _クッキー[」 id '])) '。また、 '<?php'の直後に各' .php'ページの上に 'session_start();'を追加する必要があると思います。 –

+0

@Anant、返信ありがとうございます。これらを修正しました。ありがとうございました。私はまだ同じ問題が発生していますが – Gesset

+0

'var_dump($ in);'とは何ですか?チェックして私たちも表示 –

答えて

1

あなたの変数$incallbackの範囲ではありません、ありがとうございました。

<?php error_reporting(E_ALL); 

$id = 123; 

function callback($buffer) 
{ 
    global $id; 
    return strtr($buffer, ['{ID}' => $id]); 
} 

ob_start('callback'); 

echo 'Id value: {ID}'; 

http://php.net/manual/en/language.variables.scope.php

関連する問題