如何使用 file_get_contents PHP 回显多个文件的源代码?

How to echo the source code of multiple files using file_get_contents PHP?

<textarea placeholder="Source code of file" class="source">
<?php echo ($thesource) ?>
</textarea>

    <?php 
       $blacklist = array("one.jps", "two.txt", "four.html");

if ($handle = opendir('.')) {

    while (false !== ($entry = readdir($handle))) {

        if ($entry != "." && $entry != ".." &&  !in_array($entry, $blacklist)) { 
$thesource = file_get_contents($entry);
            echo "<div class='post'
<p>$entry</p>
</div>
";
        }

    }

    closedir($handle);
}
    ?>

输出:

<textarea placeholder="Source code of file" class="source">
<!DOCTYPE html>
<html>
etc
etc
</body>
</html>
</textarea>

<p>ok.html</p> 
<p>source.php</p>
<p>sub.html</p>
<p>stylesheet.css</p>

这看起来可能令人困惑,让我试着解释一下我想要实现的目标。

假设目录中有一些文件(在本例中为 4 个)。我正在使用的 PHP 代码会将所有这 4 个文件回显到 PHP 代码所在的页面上 - 它排除了黑名单中的所有内容。所以它看起来有点像这样:

<p>ok.html</p> 
<p>source.php</p>
<p>sub.html</p>
<p>stylesheet.css</p>

还有一个文本区域:

<textarea placeholder="Source code of file" class="source">
<?php echo ($thesource) ?>
</textarea>

此文本区域的值为 $thesource。 $thesource 变量中的任何内容都会出现在文本区域中。

要定义 $thesource 变量,这是我正在使用的 PHP 代码:

$thesource = file_get_contents($entry);

请注意,$entry 是回显到页面上的所有文件(如上所述 - 在本例中为 4 个文件)

我正在努力做到这一点,每当用户点击其中一个文件时:

<p>ok.html</p> 
<p>source.php</p>
<p>sub.html</p>
<p>stylesheet.css</p>

当用户点击上面列出的那些时,它会在文本区域中显示点击文件的源代码。

我正在使用的当前源代码,仅回显包含 PHP 代码的当前文件的源代码。

我将如何实现这一目标?谢谢 - 如果您仍然不确定我要实现的目标,请询问!

这应该适合你:

首先,我获取目录中 glob() 不在黑名单中的所有文件。之后我打印一个列表,你可以点击它。

如果您单击它,文件将包含并显示在文本区域中。

<?php

    $blacklist = array("one.jps", "two.txt", "four.html");
    $files = array_diff(glob("*.*"), $blacklist);

    foreach($files as $file)
        echo "<div class='post'><a href='" . $_SERVER['PHP_SELF'] . "?file=" . $file . "'><p>" . $file . "</p></a></div>";


    if(!empty($_GET["file"]) && !in_array($_GET["file"], $blacklist) && file_exists($_GET["file"])) 
        $thesource = htmlentities(file_get_contents($_GET["file"]));

?>

<textarea rows="40" cols="100" placeholder="Source code of file" class="source"><?php if(!empty($thesource))echo $thesource; ?></textarea>