可通过四种方法读取并显示php自身源码:一、file_get_contents(__file__)配合htmlspecialchars;二、fopen+fread分块读取;三、highlight_file(__file__)自动语法高亮;四、file($_server['script_filename'])按行读取数组处理。

如果您希望在PHP脚本运行时读取并显示其自身的源代码内容,则可通过内置文件读取函数直接操作当前PHP文件。以下是实现此目标的多种方法:
一、使用file_get_contents读取__FILE__
该方法利用PHP魔术常量__FILE__获取当前脚本的绝对路径,再通过file_get_contents一次性读取全部内容,适用于大多数标准环境且无需额外配置。
1、在PHP文件开头或任意可执行位置插入以下代码:
<?php<br> $source = file_get_contents(__FILE__);<br> echo '<pre class="brush:php;toolbar:false;">' . htmlspecialchars($source) . '';
?>
2、确保Web服务器具有对该PHP文件的读取权限。
3、访问该PHP文件URL,页面将显示其原始源代码(已HTML转义,避免浏览器解析PHP标签)。
立即学习“PHP免费学习笔记(深入)”;
二、使用fopen与fread逐块读取
该方法通过文件指针方式打开自身文件,按指定字节数分块读取,适合处理较大源码文件或需控制内存占用的场景。
1、在PHP文件中添加如下代码:
<?php<br>
$handle = fopen(__FILE__, 'r');<br>
if ($handle) {<br>
$content = '';<br>
while (($chunk = fread($handle, 8192)) !== false) {<br>
$content .= $chunk;<br>
}<br>
fclose($handle);<br>
echo '<pre class="brush:php;toolbar:false;">' . htmlspecialchars($content) . '';}
?>
2、确认PHP配置中allow_url_fopen为On(默认启用),且无open_basedir限制影响__FILE__路径访问。
3、执行脚本后,页面输出经转义的完整源码文本。
三、使用highlight_file函数直接高亮显示
该方法调用PHP原生函数highlight_file,自动完成语法高亮与HTML封装,无需手动转义,输出效果更专业且符合开发者阅读习惯。
1、在PHP文件末尾(或任意位置)写入:
<?php<br> highlight_file(__FILE__);<br> ?>
2、确保PHP安装了syntax highlighting支持(通常默认启用,依赖于php.ini中highlight.*系列配置项)。
3、访问该文件时,浏览器将呈现带颜色标记的PHP语法结构,注释、关键字、字符串等均按类型着色。
四、通过$_SERVER['SCRIPT_FILENAME']配合file()读取为数组
该方法将源代码按行读入数组,便于后续逐行处理或条件过滤,适合需要对特定行进行逻辑判断的调试场景。
1、在脚本中加入以下代码:
<?php<br>
$lines = file($_SERVER['SCRIPT_FILENAME']);<br>
$output = '';<br>
foreach ($lines as $line) {<br>
$output .= htmlspecialchars($line);<br>
}<br>
echo '<pre class="brush:php;toolbar:false;">' . $output . '';?>
2、注意$_SERVER['SCRIPT_FILENAME']与__FILE__在CLI和Web SAPI下行为一致,但某些重写规则可能导致差异,建议优先验证两者是否相等。
3、运行后页面显示纯文本格式源码,每行保留原始换行结构。










