首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php作为strtr的数组值

使用php作为strtr的数组值
EN

Stack Overflow用户
提问于 2016-03-19 14:17:00
回答 1查看 464关注 0票数 2

我正在尝试加载一个包含PHP的文件,我想要执行该文件,并且我还希望能够用我选择的值替换特定的单词。

例如,我有两个文件,index.phptest.php

Index.php

代码语言:javascript
复制
<?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。如果我在test.php中使用$in['id'],它工作得很好。这只是因为它不想和替代品一起工作。

test.php

代码语言:javascript
复制
<?php
echo '{TITLE} - '.$in["id"].';
?>

所以我的问题是,当我使用{ID}时,为什么我不能让$in["id"]工作。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-03-19 15:30:53

您的变量$in不在callback范围内。

代码语言:javascript
复制
<?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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36098564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档