PHP 要秀程式碼, 除了現成的 JavaScript Plugin 等外掛外, 可以使用下述幾種方法:
- PHP Highlight 的 Function - highlight_string()
- 或 PHP Highlight 的 Function - highlight_file() 搭配此篇(How do I enable .php file to be color highlight) - 使用 .htaccess + highlight_source.php
.htaccess如下述:Action php-source /var/highlight_source.php
AddHandler php-source .phpshighlight_source.php 如下述:
<?php highlight_file($_SERVER{"DOCUMENT_ROOT"} . $_SERVER{"PATH_INFO"}); ?>
- 另一個更簡單的方法, 啟用 phps. (*.phps 會自動 Heiglight code, 但是要注意避免把 Source code 不小心公開出去)
PHP 啟用 phps 秀出 Highlight 語法
以前 .phps 預設都是啟用的, 不知哪一版開始預設被關掉了(於 Apache2 關閉 .phps 解析).
開放 phps 的 Apache2 VirtualHost 設定
<VirtualHost *:80>
ServerName blog.longwin.com.tw
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
Order Deny,Allow
Allow from all
</FilesMatch>
</VirtualHost>
關掉 .phps 的設定位於下述檔案: (有上面設定後, 這邊不用動, 這邊修改會讓整個 Apache2 網站通吃, 上面的修改只有那個 VirtualHost 會吃 .phps 的設定)
- /etc/apache2/mods-available/php5.conf
- /etc/apache2/mods-available/php5_cgi.conf # 如果有灌 php5-cgi, 這個也會有
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Order Deny,Allow
Deny from all
</FilesMatch>
想要全部開放, 只要把上述的 Deny for all 改成 Allow for all 就可以了.