当前位置: 首页> 最新文章列表> highlight_file 和 file_get_contents() 结合使用显示 PHP 文件内容。

highlight_file 和 file_get_contents() 结合使用显示 PHP 文件内容。

M66 2025-06-22

在 PHP 中,highlight_file()file_get_contents() 是两个常用来读取和展示文件内容的函数。它们各有优势,合理结合使用可以方便地显示 PHP 文件的源码内容,既能保持代码高亮效果,又能灵活控制显示的内容。

1. highlight_file() 简介

highlight_file() 是 PHP 内置的函数,专门用于显示指定文件的源码,并且带有语法高亮。它的语法如下:

highlight_file(string $filename, bool $return = false): mixed
  • $filename:要显示的文件路径。

  • $return:是否返回高亮后的源码字符串。如果为 false(默认),直接输出内容;如果为 true,则返回字符串。

例子:

highlight_file('example.php');

这会直接输出 example.php 文件的高亮源码。

2. file_get_contents() 简介

file_get_contents() 用于读取文件内容,返回文件的完整文本。它没有语法高亮效果,但读取内容后可以做任意处理,比如过滤、替换等。

语法:

file_get_contents(string $filename, bool $use_include_path = false, resource $context = null, int $offset = 0, int $length = null): string|false

简单示例:

$content = file_get_contents('example.php');
echo htmlspecialchars($content);

这里用 htmlspecialchars() 转义特殊字符,防止 HTML 解析源码时出错。

3. 两者结合的优势

  • highlight_file() 可以快速高亮整个文件,但不能方便地对内容做过滤或截取。

  • file_get_contents() 可以灵活读取和处理内容,但没有语法高亮。

结合使用,先用 file_get_contents() 读取文件内容,再用 highlight_string()highlight_file() 的字符串版)对内容高亮显示,可以实现更灵活的展示。

4. 示例代码

假设我们想读取并高亮显示一个 PHP 文件的内容,同时替换文件中的某些 URL 域名为 m66.net,可以这样写:

<?php
// 读取文件内容
$filename = 'test.php';
$content = file_get_contents($filename);

// 将文件内容中的所有 URL 域名替换为 m66.net
// 这里用正则匹配 http(s)://域名部分,替换为 http(s)://m66.net
$pattern = '/(https?:\/\/)([^\/\s]+)/i';
$replacement = '$1m66.net';
$content = preg_replace($pattern, $replacement, $content);

// 高亮显示替换后的内容
highlight_string($content);
?>

5. 说明

  • 使用 file_get_contents() 先获取文件内容。

  • 通过正则表达式替换 URL 域名部分为 m66.net

  • 使用 highlight_string() 函数显示带语法高亮的内容。

  • 这样能确保显示的代码中所有 URL 域名被替换成 m66.net,方便统一处理和演示。

6. 总结

结合 highlight_file()highlight_string()file_get_contents(),可以灵活地控制 PHP 源代码的显示方式。尤其是当需要对代码内容做动态处理(如替换 URL)时,先读取内容再高亮是更好的选择。