PHPソースコードをハイライト表示する
PHP講座>Tips>PHPソースコードをハイライト表示する
php.netのコメントにあるような、ハイライトされたソースコードを表示する方法について解説します。
ハイライト表示の例
<html>
<head>
<title>サンプルソース</title>
</head>
<body>
<?php
$ar = array("hello", "thank you", "goodbye");
# 配列を表示
foreach($ar as $s) {
echo $s."<br />";
}
?>
</body>
</html>
コードをハイライト表示するには、2つの方法があります。
- PHPに元から組み込まれているhighlight_file()関数およびhighlight_string()関数を使う
- PEARのText_Highlighterを使う
今回は1つ目の方法を使ってみたいと思います。
組み込み関数によるハイライト表示
highlight_file()もhighlight_string()も、表示される色などは同じですが
ファイル名を引数に取るか、文字列を引数に取るかが異なります。
highlight_file()の使用例
<html>
<head><title>Highlight file</title></head>
<body>
<?php
highlight_file("test.php");
?>
</body>
</html>
出力例
<html>
<head>
<title>サンプルソース</title>
</head>
<body>
<?php
$ar = array("hello", "thank you", "goodbye");
# 配列を表示
foreach($ar as $s) {
echo $s."<br />";
}
?>
</body>
</html>
highlight_file()を呼び出すだけでハイライトされたソースが描写されます。
highlight_string()の使用例
<html>
<head><title>Highlight string</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body>
<?php
if($_POST{"hl_source"}) {
highlight_string(stripslashes($_POST{"hl_source"}));
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="POST">
<textarea name="hl_source" cols="35" rows="7"></textarea>
<input type="submit" value="送信" />
</form>
</body>
</html>
サンプルはこちらをご参照ください。
ハイライトされたコードを受け取りたい場合は第二引数にtrueを指定します。
$rt = highlight_string(stripslashes($_POST{"hl_source"}), TRUE);
色の設定
ハイライト時には次の色が使われます。
識別子 | 説明 | デフォルト色 |
highlight.bg | 背景色 | White(#ffffff) |
highlight.comment | ソース内のコメント | Orange(#ff9900) |
highlight.html | PHPコード外のHTMLタグ | Black(#000000) |
highlight.keyword | キーワード(if,for,as,arrayなど) | Dark Green(#006600) |
highlight.string | 文字列(""や''で囲まれた部分) | Red(#cc0000) |
highlight.default | ソース内のその他の文字 | Blue(#0000CC) |
これらの色は、highlight_string()、highlight_file()共通です。
色を変更するには2つの方法があります。
(1).htaccessを書き換える
たとえばkeywordをピンクで表示したい場合は、.htaccessに次の一文を追加します。
php_value highlight.keyword #ff00ff
なおこの方法は、サーバーの設定で、.htaccessからPHPの設定を変えられるようになっている必要があります。
(2)コード内で色を指定する
ini_set()を使うことで、コード内で色を指定することができます。
例として、keywordをピンクで表示したい場合は次のようにします。
<?php
ini_set('highlight.keyword', '#ff00ff;');
highlight_file('test.php');
?>
以上でハイライト表示についての説明を終わります。
highlight_string()を使ったサンプルプログラムとソースコードを載せておきますのでご参照ください。
PHPソースをハイライト表示≫
ソース≫
番外編:拡張子をphpsにする
多くのサーバーでは、拡張子phpsのファイルについては、ハイライトされたソースコードを表示します。
この機能が無効になっている場合は、httpd.confに以下のような行を追加することで有効にできます。
AddType application/x-httpd-php-source .phps
PHP講座>Tips>PHPソースコードをハイライト表示する