php-只有一个生成的代码显示错误

时间:2017-12-18 23:32:58

标签: php html variables comments

我有一个代码列出所有没有扩展名的目录,效果很好。问题是当我想添加一些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中运行。所以那一切都很好。

1 个答案:

答案 0 :(得分:1)

请记住,只有一次拍摄和一次拍摄才能渲染出处理此请求时需要执行的操作。因此,您必须立即执行呈现响应所需的任何代码。

尝试通过定义关联数组来捕获结果:

$results = array();

然后使用$no_extension变量作为键将数据插入到该结构中:

$results[$no_extension] = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/my/path/$no_extension.txt");

所以最后你可以用这些数据做任何你想做的事。

不要忘记PHP可以并且会在双引号字符串中插入像$no_extension这样的变量。如果您尝试根据其他字符串撰写字符串,这可以简化您的代码,避免重复连接。