有人可以帮我这个吗?
我有一个包含一些文件的文件夹(没有扩展名)
/模块/邮件/模板
使用这些文件:
我想首先循环并读取文件名(test和test2)并将它们打印到我的html表单作为下拉项。这是有效的(其余形式的html标签在上面和下面的代码下面,在这里省略)。
但我还想阅读每个文件内容并将内容分配给var $内容并将其放在我稍后可以使用的数组中。
这就是我试图实现这一目标的方法,但没有运气:
foreach (glob("module/mail/templates/*") as $templateName)
{
$i++;
$content = file_get_contents($templateName, r); // This is not working
echo "<p>" . $content . "</p>"; // this is not working
$tpl = str_replace('module/mail/templates/', '', $templatName);
$tplarray = array($tpl => $content); // not working
echo "<option id=\"".$i."\">". $tpl . "</option>";
print_r($tplarray);//not working
}
答案 0 :(得分:1)
在循环外部初始化数组。然后在循环内分配它的值。在你不在循环之前,不要尝试打印数组。
r
调用中的file_get_contents
错误。拿出来。 file_get_contents
的第二个参数是可选的,如果使用它应该是一个布尔值。
如果尝试读取文件时出错,请检查file_get_contents()
是否未返回FALSE
。
您有一个拼写错误,指的是$templatName
而不是$templateName
。
$tplarray = array();
foreach (glob("module/mail/templates/*") as $templateName) {
$i++;
$content = file_get_contents($templateName);
if ($content !== FALSE) {
echo "<p>" . $content . "</p>";
} else {
trigger_error("file_get_contents() failed for file $templateName");
}
$tpl = str_replace('module/mail/templates/', '', $templateName);
$tplarray[$tpl] = $content;
echo "<option id=\"".$i."\">". $tpl . "</option>";
}
print_r($tplarray);
答案 1 :(得分:1)
此代码对我有用:
<?php
$tplarray = array();
$i = 0;
echo '<select>';
foreach(glob('module/mail/templates/*') as $templateName) {
$content = file_get_contents($templateName);
if ($content !== false) {
$tpl = str_replace('module/mail/templates/', '', $templateName);
$tplarray[$tpl] = $content;
echo "<option id=\"$i\">$tpl</option>" . PHP_EOL;
} else {
trigger_error("Cannot read $templateName");
}
$i++;
}
echo '</select>';
print_r($tplarray);
?>