highlight_fileは、PHPが提供する関数であり、構文の強調表示で指定されたPHPファイルコンテンツを出力するために使用されます。キーワード、変数、文字列などに色が自動的に追加され、コードの読みやすさが向上します。この関数は、強調表示されたコンテンツを直接出力するか、文字列として返すことを選択できます。
関数プロトタイプは次のとおりです。
highlight_file(string $filename, bool $return = false): string|bool
$ filename :読み取りおよび強調表示されるPHPファイルへのパス。
$ return :直接出力の代わりに強調表示されたコンテンツを返すかどうか、デフォルトはfalseです。
現在のスクリプト自体の内容を強調するための基本的な例を次に示します。
<?php
highlight_file(__FILE__);
?>
上記のコードを.phpファイルとして保存して、ブラウザにアクセスすると、色のソースコード出力が表示されます。
ユーザーにファイルを指定してURLパラメーターを介して表示する場合(コードディレクトリのPHPファイルなど)、次の例を参照できます。
<?php
$filename = $_GET['file'] ?? '';
$allowed_files = [
'example1.php',
'example2.php'
];
if (in_array($filename, $allowed_files)) {
highlight_file(__DIR__ . '/' . $filename);
} else {
echo '違法なファイルリクエスト。';
}
?>
次の方法で、ファイルコンテンツの強調表示ページにアクセスできます。
https://gitbox.net/highlight.php?file=example1.php
注:**セキュリティ上の理由から、ユーザーが提供するパスを使用してファイルを直接読み取らないでください。 **上記のコードは、特定のファイルの表示のみを許可して、ディレクトリトラバーサル攻撃などのセキュリティリスクを防ぎます。
ディスプレイをより柔軟に制御したい場合(CSSスタイルの追加や特定のHTML構造にラッピングするなど)、 $ returnパラメーターをtrueに設定して、ハイライトされたコンテンツを文字列として返すことができます。
<?php
$highlighted = highlight_file('example1.php', true);
?>
<!DOCTYPE html>
<html>
<head>
<title>コードハイライト</title>
<style>
body {
background-color: #f0f0f0;
font-family: monospace;
}
.code-box {
background-color: #fff;
padding: 20px;
border: 1px solid #ddd;
overflow-x: auto;
}
</style>
</head>
<body>
<h2>example1.php コード表示</h2>
<div class="code-box">
<?php echo $highlighted; ?>
</div>
</body>
</html>
この方法は、フロントエンドフレームの組み合わせ、タイプセットの美化など、カスタムディスプレイスタイルに適しています。