PHPでは、 highlight_file()とfile_get_contents()は、ファイルコンテンツの読み取りと表示に一般的に使用される2つの関数です。彼らにはそれぞれ独自の利点があります。合理的に組み合わされた組み合わせを使用して、PHPファイルのソースコードコンテンツを簡単に表示できます。これにより、コードの強調効果を維持するだけでなく、表示されたコンテンツを柔軟に制御できます。
highlight_file()は、PHPの組み込み関数であり、指定されたファイルのソースコードを表示するために特別に使用され、構文の強調表示があります。その構文は次のとおりです。
highlight_file(string $filename, bool $return = false): mixed
$ filename :表示するファイルパス。
$ return :強調表示されたソース文字列を返すかどうか。 false (デフォルト)の場合、コンテンツは直接出力されます。 trueの場合、文字列が返されます。
例:
highlight_file('example.php');
これにより、example.phpファイルの強調表示されたソースコードが直接出力されます。
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エラーを防ぐために特殊文字を逃れるために使用されます。
highlight_file()はファイル全体をすばやく強調表示できますが、コンテンツを便利にフィルタリングまたはインターセプトすることはできません。
file_get_contents()は、コンテンツを柔軟に読み取り、処理できますが、構文の強調表示はありません。
組み合わせて、最初にfile_get_contents()を使用してファイルコンテンツを読み取り、 highlight_string() ( highlight_file( )の文字列バージョンを使用してコンテンツを強調表示します。
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);
?>
file_get_contents()を使用して、ファイルコンテンツを最初に取得します。
M66.netに正規表現でURLドメイン名パーツを置き換えます。
highlight_string()関数を使用して、構文強調表示でコンテンツを表示します。
これにより、表示されたコード内のすべてのURLドメイン名がM66.NETに置き換えられます。これは、統一された処理とデモンストレーションに便利です。
highlight_file()またはhighlight_string()とfile_get_contents()を組み合わせることで、phpソースコードの表示を柔軟に制御できます。特に、コードコンテンツの動的処理(URLの交換など)の場合は、最初にコンテンツを読み取り、次に強調表示することをお勧めします。
関連タグ:
file_get_contents