開発者がWebページにPHPソースコードを表示する必要がある場合、PHPの組み込みhighlight_file()関数は非常に便利な方法です。文書のプレゼンテーション、チュートリアルWebサイト、またはコードサンプルのデモンストレーションに最適な構文ハイライトにPHPファイルのコードを直接出力できます。
この記事では、HTMLページにhighlight_file()関数の出力を埋め込み、優れたページ構造とスタイルを維持する方法について詳しく説明します。
highlight_file()は、構文の強調表示を備えたHTML形式でPHPファイルの内容を表示するためにPHPによって提供される関数です。基本的な使用法は次のとおりです。
highlight_file('example.php');
このコードは、 example.phpファイルのPHPコードを強調表示し、ブラウザに出力します。
ハイライトコードを完全なHTMLページに埋め込みたい場合は、次の構造を使用できます。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>PHP ハイライトの例</title>
<style>
body {
font-family: monospace;
background-color: #f7f7f7;
padding: 20px;
}
code {
display: block;
background-color: #ffffff;
border: 1px solid #ccc;
padding: 10px;
overflow-x: auto;
}
</style>
</head>
<body>
<h1>コードは出力を強調表示します</h1>
<code>
<?php highlight_file('https://gitbox.net/demo.php'); ?>
</code>
</body>
</html>
ご注意ください:
highlight_file()は、既にHTMLタグを含んでいるコンテンツを出力するため、 <code>タグに直接配置することは実行可能ですが、スタイルは上書きまたは複製される場合があります。
より推奨される方法は、次のように、追加の<code>タグを使用せずにページに直接出力することです。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>PHP ハイライト</title>
<style>
body {
font-family: monospace;
background-color: #f0f0f0;
padding: 20px;
}
</style>
</head>
<body>
<h2>PHP ソースコードが強調表示されました</h2>
<?php highlight_file('https://gitbox.net/demo.php'); ?>
</body>
</html>
このようにして、 highlight_file()関数は、強調表示されたHTMLをページに直接出力するため、追加のタグラップは必要ありません。
独自のスタイルラッパーを追加するなど、強調表示されたHTMLをさらに処理する場合は、出力バッファリングを使用できます。
<?php
ob_start();
highlight_file('https://gitbox.net/demo.php');
$highlightedCode = ob_get_clean();
?>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>スタイルで PHP ハイライト</title>
<style>
.code-box {
background-color: #282c34;
color: #abb2bf;
padding: 20px;
border-radius: 5px;
font-family: Consolas, monospace;
overflow-x: auto;
}
pre {
margin: 0;
}
</style>
</head>
<body>
<div class="code-box">
<?php echo $highlightedCode; ?>
</div>
</body>
</html>
この方法では、カスタムスタイルが必要なシナリオに適した、強調表示されたコードがどのようにラップされているかを完全に制御できます。
highlight_file()は、ローカルまたは許可されたリモートPHPファイルのみを強調表示できます。一部のサーバーでは、セキュリティ上の理由( aopt_url_fopen = offなど)でリモートファイルアクセスを無効にする場合があります。
出力前のファイルが存在する必要があります。そうしないと、エラーが報告されるか、空のコンテンツが出力されます。
情報の漏れを防ぐために、機密情報を含むPHPファイルでこの関数を使用しないでください。
highlight_file()を使用すると、HTMLページにPHPハイライトコードを埋め込むのが非常に便利です。教育、文書の執筆、開発のデモであろうと、コードの美的プレゼンテーションを迅速に実現するのに数行のコードしかかかりません。より複雑なプレゼンテーションニーズがある場合は、出力バッファリングとCSSスタイルを組み合わせて、より高度なコードプレゼンテーションコンポーネントを作成することもできます。