我有一个代码列出所有没有扩展名的目录,效果很好。问题是当我想添加一些php&lt;&gt;之前和之后,转换<?php ?>
中的<!-- -->
。我不知道为什么。
有什么想法吗?
<?php
$variables = '';
$handle = '';
$variablesfile = '';
// open my directory
if ($handle = opendir($_SERVER['DOCUMENT_ROOT'].'/mvi/index/graphic-documents/sozie/variables/')) {
// list directory contents
while (false !== ($variablesfile = readdir($handle))) {
// exeptions
if (($variablesfile != ".")
&& ($variablesfile != "..")
&& ($variablesfile != "index.php")
&& ($variablesfile != "compiler.php")
&& ($variablesfile != ".DS_Store"))
// only grab file names
if (is_file($_SERVER['DOCUMENT_ROOT'].'/my/path/'. $variablesfile)) {
$file_name = $variablesfile;
$file_array = explode('.',$file_name);
$extension = count($file_array) - 2;
$no_extension = substr($file_name,0,strlen($file_array[$extension]));
// creation of php code
$variables .= '<?php $'.$no_extension.' = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/my/path/'.$no_extension.'.txt") ; ?>'. "\n" ;
}
}
closedir($handle);
echo $variables ;
}
?>
检查员的结果:
应该是什么
<?php $variable = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/my/path/variable.txt") ; ?>
是
<!-- ?php $variable = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/my/path/variable.txt") ; ? -->
如果我从Chrome查看我的源代码,则<?php ?>
显示良好.....
其他地方的一切都很好。我检查了我的apache,我在localhost中运行。所以那一切都很好。
答案 0 :(得分:1)
请记住,只有一次拍摄和一次拍摄才能渲染出处理此请求时需要执行的操作。因此,您必须立即执行呈现响应所需的任何代码。
尝试通过定义关联数组来捕获结果:
$results = array();
然后使用$no_extension
变量作为键将数据插入到该结构中:
$results[$no_extension] = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/my/path/$no_extension.txt");
所以最后你可以用这些数据做任何你想做的事。
不要忘记PHP可以并且会在双引号字符串中插入像$no_extension
这样的变量。如果您尝试根据其他字符串撰写字符串,这可以简化您的代码,避免重复连接。