//擷取字串前幾個字並避免截掉半個中文字,$strlen要擷取的字串長度
function CuttingStr($str,$strlen) {
if(strlen($str) > $strlen) {
for($i=0;$i<$strlen;$i++) {
$ch=substr($str,$i,1);
if(ord($ch)>127) $i++;
}
$str= substr($str,0,$i);
}
return $str;
}
目前分類:PHP (35)
- Nov 23 Fri 2007 20:15
擷取字串前幾個字並避免截掉半個中文字
- Nov 23 Fri 2007 20:15
轉載:PHP如何判斷是否為utf8編碼文件的方法
google搜尋到的。
位置: http://ibtaiwan.com/ipb/index.php?showtopic=4035
由於utf8編碼有固定格式,其可能有2~4個字節,我們可以將每一個字節拆開判斷
這個函示僅判斷每個中文字的第一個字節,應該夠了。
- Nov 23 Fri 2007 20:14
轉載:逐字的utf8轉big5
不過我在使用iconv,將utf8轉big5時就出現一個問題,就是只要遇到utf8轉big5,沒有對應的big5碼的時候就有狀況了,原本以為就那個字沒出現,結果勒,是當對應不到big5碼後它是以後的通通不見了,當然這下子就不妙了。
最後我只好一個字一個字轉,然後遇到沒有對應的碼就用"■"代替,雖然損失了效能,但是卻確保了正確性。
- Nov 23 Fri 2007 20:13
使用 IGNORE及TRANSLIT 忽略 iconv 轉碼錯誤或取得替代字碼
UTF-8 編碼 (Unicode),又稱「統一碼」或「萬國碼」。
要使用 PHP 將台灣繁體中文專用編碼 BIG5 或簡體中文GB2312/GBK碼 轉成UTF-8萬國碼,都是很容易的事。
在PHP中最常用來進行各種文字編碼之間的轉換函式應該就是 iconv()
在 PHP 裏的 iconv() 函式是由 libiconv library 提供;無論是在 台灣、香港、大陸,或美國 ... 目前絕大部份的主機商應該都有開放此函式庫給虛擬主機戶使用;假如是自架主機,就要確定當初安裝編譯PHP時有 --with-iconv[=DIR] 方能支援此轉碼用函式庫。
使用 iconv() 將 BIG5 編碼的繁體中文字轉換成 UTF-8 編碼通常是不會有什麼問題的 ...
但是,
假如換成是要將 UTF-8 萬國碼 中文字轉成 BIG5 碼,偶爾就會遇上「缺碼字」的問題,如下例︰
Code : * php *
<?php
$string = iconv('UTF-8', 'BIG5', "歡迎光臨 INABA 依蒳貝 有機保養裝園");
echo $string;
// 以上程式範例將會輸出以下BIG5編碼文字 ...
// 歡迎光臨 INABA 依
?>

這怎麼回事 ?!
因為,
許多在電腦上可以打出來的中文字,如上例的「蒳」 <<-- 這個字 實際上繁體中文BIG5碼裏頭並無此字型。
UTF-8 碼所包含的中文字比 BIG5 碼多出很多;有很多UTF-8 編碼所包含中文字,其實 BIG5 碼裏面並沒有。
所以當我們使用 iconv() 將 UTF-8 轉換為 BIG5,其中假如有 BIG5 碼裏所沒有的字,該函式的轉碼動作將會停止,並產生一個提示警訊。
註 : PHP 預設不會顯示這類 Notice (提示警訊),除非主機變更設定,或程式中以 error_report(E_ALL) 指定顯示所有的錯誤訊息。
那,怎麼辦?
iconv() 函式本身有提供幾個(不是怎麼理想的)處理方法 ...
1. 忽略BIG5缺碼字(跳過,不轉碼也,不以任何替代字顯示);
Code : * php *
$string = iconv('UTF-8', 'BIG5//IGNORE', "歡迎光臨 INABA 依蒳貝 有機保養裝園");
echo $string;
// 以上程式範例將會輸出以下BIG5編碼文字 ...
// 歡迎光臨 INABA 依貝 有機保養裝園
2. 嘗試以替代字元顯示,若無替代字可顯示,轉碼動作即停止,並產生提示警訊(此法不適用來轉中文字碼; 因為總是無可替換的字);
Code : * php *
$string = iconv('UTF-8', 'BIG5//TRANSLIT', "歡迎光臨 INABA 依蒳貝 有機保養裝園");
echo $string;
// 以上程式範例將會輸出以下BIG5編碼文字 ...
// 歡迎光臨 INABA 依
假如 缺碼字 有可替代顯示的字 ... 例 ...
Code : * php *
$string = iconv('UTF-8', 'BIG5//TRANSLIT', "€100 == 歐幣100元");
echo $string;
// 以上程式範例將會輸出以下BIG5編碼文字 ...
// EUR100 == 歐幣100元
3. 嘗試以替代字元顯示,若無可替代字則忽略跳過(不會產生提示警訊),繼續轉後面的文字。
Code : * php *
$string = iconv('UTF-8', 'BIG5//TRANSLIT//IGNORE', "歡迎光臨 INABA 依蒳貝 有機保養裝園");
echo $string;
// 以上程式範例將會輸出以下BIG5編碼文字 ...
// 歡迎光臨 INABA 依貝 有機保養裝園
//TRANSLIT
//IGNORE
//TRANSLIT//IGNORE
iconv() 提供在 目標編碼 後面加上以上三種選項標記文字的方式來處理 目標編碼 缺碼字 的問題。
從上述幾個程式範例看來,//TRANSLIT//IGNORE 是稍微比較理想 (仍然是不盡理想) 的方式。
這篇先寫到這裏。
後面再接續文來分別介紹兩種較理想的處理方法 -- 直接將缺碼字轉成 UnicodeHTML 碼,讓這些缺碼字 以 HTML(entities) 原始碼格式(例︰[蒳] 顯示為「蒳」)直接顯示 Unicode 編碼字符 在網頁上 (無論網頁文字顯示是否使用Unicode/UTF-8編碼都行)。
- Nov 23 Fri 2007 20:10
轉載:談論主題 手工安裝PHP5 + MYSQL5 + IIS
- Nov 23 Fri 2007 20:07
Windows環境讓PHP4與PHP5共存,使用Apache
- Nov 23 Fri 2007 20:07
轉載:讓你的PHP4和PHP5共存...
資料來源:http://blog.blueshop.com.tw/phpman/archive/2005/07/19/10358.aspx
讓你的PHP4和PHP5共存...
廢話少說,直接看方法:
一,本文涉及軟件極其版本:
Windows 2000 Professional/XP
Apache 1.3.28 FOR WIN
Microsoft Internet Server Information(IIS6)
PHP 4.3.3(4.3.5), PHP 5.0.0 beta(5.0.0RC1)
MySQL 3.23.57(3.23.58)
- Nov 23 Fri 2007 20:06
轉載:一山能容二虎—Windws下基於Apache的PHP4和PHP5共存
一山能容二虎—Windws下基於Apache的PHP4和PHP5共存
一山能容二虎—Windws下基於Apache的PHP4和PHP5共存
在學習PHP過程中可能要同時用到PHP4和PHP5,網上也有不少關於二者共存的安裝方法,大多是一個安裝在IIS下,一個安裝在Apache下。下面介紹一下本人的安裝方法,自認為比較優化,而且非常方便升級。
- Nov 23 Fri 2007 20:02
PHP如何判斷網站來訪者是否為搜尋引擎機器人
class CkRobot{
/*來訪者是否為搜尋引擎機器人
* 傳回值 boolean true 是機器人 false 非機器人
*/
- Nov 23 Fri 2007 20:00
轉載:取得$_SERVER["REQUEST_URI"] 值的通用解決方案
- Nov 24 Fri 2006 21:08
Spreadsheet_Excel_Reader 的日期問題
- Nov 24 Fri 2006 21:04
PHP mhash 模組的安裝程序
/* PHP mhash 模組的安裝程序 */
《windows 下安裝程序》
1、複製 PHP4或PHP5 套件中 dlls 目錄下已編譯好的 libmhash.dll
‧libmhash.dll 是必須用到的外掛模組。
‧將libmhash.dll複製到C:\winnt\system32。
‧若已經設定C:\PHP為環境變數,則將libmhash.dll複製到C:\PHP。
- Nov 24 Fri 2006 21:03
PHP mcrypt 模組的安裝程序
/* PHP mcrypt 模組的安裝程序 */
《windows 下安裝程序》
1、下載已編譯好的 libmcrypt.dll (http://ftp.emini.dk/pub/php/win32/mcrypt/)
‧libmcrypt.dll 是必須用到的外掛模組。
‧將libmcrypt.dll複製到C:\winnt\system32。
‧若已經設定C:\PHP為環境變數,則將libmcrypt.dll複製到C:\PHP。
- Nov 24 Fri 2006 20:56
windows 下pear的安裝程序
/* pear的安裝程序 */
《windows 下安裝程序》
1、下載安裝腳本
‧http://go-pear.org/ 或是 http://pear.php.net/go-pear。
‧將會在瀏覽器畫面上看到pear的安裝腳本,另存新檔,並命名為go-pear.php。