Posts

Showing posts from February, 2008

Apache 的 .htaccess 失效?

如果你的 Apache .htaccess 設定檔無效 請先檢查 httpd.conf 中的 <Directory>...</Directory> 中的 AllowOverride 設定是否為 None 改成 AllowOverrider All 就可以了 由於安全性等的考慮 Apache 可能預設會是 None 如果你只有某些地方需要支援 .htaccess 設定 可指定目錄支援即可 <Directory "/var/www/html"> AllowOverride All </Directory> 參考來源: [求助] Apache主機.htaccess強迫編碼設定

PHP 正規化的好幫手:preg_replace()

某些字串取代不能夠單純的用 str_replace 達成 這時候就要搭配 正規化 ( Regular Expression , 簡寫 Regex )來做到 PHP 中可以用 preg_replace 來做到正規化取代的功能 preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit [, int &$count ]] ) 在大量線上 Post 文或文書處理時 編輯人員往往都不會自行將來源的文字中的網址加上超連結 這時讀者如果想要到文中提及的網站瀏覽 就只能乖乖的複製好網址再貼上到瀏覽器的網址列了 如果想要將文章裡面的文字連結利用正規化變成真的 Hyper Link 請試看看以下的範例: <?php // 將字串中的網址加入超連結 function parseURL($strURL = null) { $regex = "{ ((https?|telnet|gopher|file|wais|ftp):[\\w/\\#~:.?+=&%@!\\-]+?)(?=[.:?\\-]*(?:[^\\w/\\#~:.?+=&%@!\\-]|$)) }x"; return preg_replace( $regex, "<a href=\"$1\" target=\"_blank\" alt=\"$1\" title=\"$1\">$1</a>", $strURL); } echo ParseMsg('http://www.php.net'); ?> 得到的結果: http://www.php.net 延伸閱讀: PHP 編寫 BBCode 函式