【PHP8.x】show_source関数の使い方

作成日: 更新日:

show_source関数は、指定されたPHPファイルの内容を読み込み、PHPの構文に応じて色分け(構文ハイライト)を施して表示する関数です。この関数は、主にPHPスクリプトのコードをWebブラウザ上で実行するのではなく、そのコード自体を視覚的にわかりやすく表示したい場合に利用されます。例えば、他の開発者にコードの一部を見せたい時や、自身のコードをデバッグする際に、実行結果ではなくソースコード自体を確認したい場合などに便利です。

使用する際は、第一引数に表示したいPHPファイルのパスを文字列で指定します。例えば、show_source('myscript.php');と記述することで、myscript.phpファイルの内容がハイライトされて出力されます。この関数は、highlight_file関数のエイリアス(別名)であるため、両者は全く同じ機能を提供します。

通常、show_source関数はハイライトされたコードを直接Webブラウザに出力しますが、第二引数にtrueを指定することで、出力せずにハイライトされたコードの文字列を取得することも可能です。

ただし、セキュリティ上の注意点があります。インターネットに公開されているWebサイトで、ユーザーが指定した任意のファイルパスをshow_source関数に渡すような実装は、情報漏洩のリスクがあるため避けるべきです。この関数は、主に開発環境でのコードの確認や学習、または信頼できる範囲内でのコード共有の目的で使用することをお勧めします。

基本的な使い方

構文(syntax)

show_source('path/to/your/file.php');

引数(parameters)

string $filename, bool $return = false

  • string $filename: 表示するPHPソースコードファイルのパスを指定する文字列
  • bool $return = false: trueを指定すると、ソースコードの文字列を返します。falseの場合は、直接出力します。

戻り値(return)

string|bool

指定されたPHPファイルの内容を文字列として返します。ファイルが存在しない、または読み込めない場合は false を返します。

サンプルコード

PHP show_sourceで自身のソースコードを出力する

<?php

/**
 * PHPのshow_source関数を使用して、このスクリプト自身のソースコードを
 * 構文ハイライトしてブラウザに出力するサンプルコードです。
 *
 * show_source関数は、指定されたPHPファイルの内容を、色分けされたHTML形式で表示する際に使用されます。
 * プログラミング初心者がコードの構造や関数、変数の使われ方を学ぶ際に役立ちます。
 */

// show_source関数は、指定されたファイルのソースコードを
// HTML形式で構文ハイライトし、ブラウザに出力します。
// __FILE__ は、現在実行しているスクリプト自身のフルパスを示すPHPの組み込み定数です。
show_source(__FILE__);

// 第二引数に true を指定すると、ソースコードは出力されずに文字列として返されます。
// その場合、取得した文字列をechoなどで表示する必要があります。
// 以下は、その場合の利用例ですが、このサンプルではデフォルト動作(直接出力)を優先しています。
/*
$highlighted_code_string = show_source(__FILE__, true);
echo "<h2>文字列として取得したハイライト済みコード:</h2>";
// HTMLとして安全に表示するため、<pre>タグとhtmlspecialchars()を使用するのが一般的です。
echo "<pre>" . htmlspecialchars($highlighted_code_string) . "</pre>";
*/

?>

show_source関数は、指定したPHPファイルのソースコードを、構文に応じて色分けされたHTML形式でブラウザに表示するための関数です。PHPのキーワードや変数、コメントなどが異なる色で表示されるため、コードの構造を視覚的に理解しやすくなります。

第一引数 $filename には、対象となるPHPファイルのパスを文字列で指定します。このサンプルコードでは、PHPに組み込まれている定数 __FILE__ を使用しています。__FILE__ は現在実行しているスクリプトファイル自身のフルパスを指すため、このコードは自分自身のソースコードをハイライト表示する、という動作になります。

第二引数 $return は省略可能なオプションで、デフォルトでは false が設定されています。false の場合、ハイライトされたHTMLは直接ブラウザに出力され、関数の処理が成功した場合は戻り値として true が返されます。もし第二引数に true を指定すると、結果は出力されずに、ハイライトされたHTMLコードが文字列として返されます。これにより、取得した文字列を後から加工したり、任意の場所に表示したりできます。

なお、指定したファイルが見つからないなど、処理に失敗した場合は false を返します。

show_source関数は、指定したファイルのソースコードをそのまま表示するため、セキュリティに注意が必要です。外部から受け取ったファイル名を直接指定すると、サーバー内の重要な設定ファイルなどが漏洩する危険性があります。そのため、表示するファイルは開発者自身が固定で指定するようにしてください。この関数は、デフォルトではHTMLとして直接画面に出力しますが、第二引数にtrueを指定すると、結果を文字列として受け取れます。文字列として受け取れば、任意の場所に表示したり加工したりできます。なお、この関数はhighlight_fileという名前でも利用でき、主に学習やデバッグ目的で使用されます。

【PHP8.x】show_source関数の使い方 | いっしー@Webエンジニア