将文件读入字符串时如何扩展文本文件中的变量?

斯科特·米尔韦瑟·兰金

在处理 html 表单输入和通过 php 发送电子邮件进行响应的上下文中,我希望将电子邮件文本保存在文件中并在需要时阅读,而不是在我的代码中间放置冗长的 heredoc 赋值语句,根据需要扩展嵌入变量。

使用适当准备的 HTML 表单数据输入,我以前有……

$message = <<<TEXT  
NAME: {$_POST["fname"]} {$_POST["lname"]}
POSTAL ADDRESS: {$_POST["postal"]}
EMAIL ADDRESS: {$_POST["email"]}
[... message body etc.]
TEXT;

将文本移动到一个文件,然后我尝试...

$message = file_get_contents('filename.txt');

…但发现文本中的变量没有展开,导致输出包括变量标识符作为文字。

有没有办法在将文件读入字符串时扩展变量?

尸体

可能有重复,如果找到我会删除。但是我想到了两种方法:

如果您像这样构建文件:

NAME: {fname} {lname}

然后循环$_POST变量:

$message = file_get_contents('filename.txt');

foreach($_POST as $key => $val) {
    $message = str_replace('{'.$key.'}', $val, $message);
}

如果您像这样构建文件:

NAME: <?= $_POST["fname"] ?> <?= $_POST["lname"] ?>

如果 HTML .txt 或其他(不是 .php)则:

ob_start();
$file = file_get_contents('filename.txt');
eval($file);
$message = ob_get_clean();

如果是 .php 文件,则缓冲输出并包括:

ob_start();
include('filename.php');
$message = ob_get_clean();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将文本文件读入字符串变量并删除换行符?

如何将文本文件读入字符串变量并删除换行符?

C-如何将文本文件中的单词读入字符串数组

将文本文件读入字符串

将文本文件读入字符串数组

C - 将文本文件中的字符串读入结构内的数组

如何读入字符串数据并计算文本文件中数字的总和

如何在python中将任意长度的文本文件读入单独的字符串和整数变量?

如何将文本存储在资产目录中文本文件的字符串变量中?

将txt文件读入变量时,获取文本文件的url而不是java中的内容

将行从文本文件读入字符串的指针数组。

如何从文本文件中删除字符串?

如何将字符串变量转储到文本文件

如何读入文本文件并将它们复制到字符串数组?

将字符串插入文本文件中的列表变量[使用sed]

将字符串变量存储在文本文件中

在文本文件中搜索字符串时如何包含空格

如何安全地将变量中定义的字符串与从 Python 2.7 中未知编码的文本文件加载的字符串进行比较?

如何将文本文件与行中的常见字符串对合并

如何将文本文件中的“ Inf”字符串转换为数字

如何将多个文本文件中的字符串添加到数组

将值分配给文本文件中的变量。在文件中搜索字符串。替换文件中的字符串?

TCL文本文件字符串到变量

如何使用Windows批处理文件解析包含本地变量的文本文件中的字符串?

将文本文件批量拆分为出现字符串的文本文件

如何搜索字符串并替换文本文件中的字符串?

将字符串保存到文本文件

将字符串打印到文本文件

将字符串写入文本文件