最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP 中英文混合排版中處理字符串常用的函數(shù)

 更新時間:2007年04月12日 00:00:00   作者:  
# 判斷某個位置是中文字符的左還是右半部分,或不是中文 
# 返回值 -1 左 0 不是中文字符 1 右 
# 用法 
/* 
$a = 'this is 中文'; 
print is_chinese($a, 1); // 0 
print is_chinese($a,8); // -1 
print is_chinese($a,9); // 1 
*/ 
function is_chinese(&$str, $location) { 
$ch = true; 
$i = $location; 
while(ord($str[$i])>0xa0 && $i >= 0) { 
$ch = !$ch; 
$i --; 


if($i != $location) { 
$f_str = $ch ? 1: -1; 

else { 
$f_str = false; 


return $f_str; 



# 中文字符串倒置函數(shù) 
# 如果一個將一個有中文的字符串用strrev倒過來,就會產(chǎn)生亂碼 
/* 
print cstrrev('this is 中文'); // 文中 si siht 
*/ 

function cstrrev(&$str) { 
$long = strlen($str); 
for($f_str='', $chinese=false, $i=$long-1; $i>=0; $i--) { 
if(ord($str[$i]) > 0xa0) { 
$chinese = ! $chinese; 
if($chinese == false) { 
$f_str .= $str[$i].$str[$i+1]; 


else { 
$f_str .= $str[$i]; 


return $f_str; 

/* 中文字符串截取函數(shù) 
一些中文字符串截取函數(shù)經(jīng)常有一些問題,例如在一些自動換行程序中 
$a=“1中2”; 
經(jīng)兩次截取后, 
csubstr($str,$a,0,2); 
csubstr($str, $a, 2,2) 
由于載取位置指向“中”的右字節(jié),可能會是這樣的結(jié)果 
1, 2 
用本函數(shù)會產(chǎn)生正確的結(jié)果 
1中, 2 
*/ 
# start 開始位置,從0開始 
# long = 0 則從start 一直取到字符串尾 
# ltor = true 時從左到右取字符,false 時到右到左取字符 
# $cn_len 中文字符按字節(jié)取還是字?jǐn)?shù)取,如果按字?jǐn)?shù)取,則一個中文當(dāng)一個字節(jié)計算 

function csubstr(&$str, $start=0, $long=0, $ltor=true, $cn_len=2) { 
if($long == 0) $long = strlen($str); 
if($ltor == false) $str = cstrrev($str); 

if($cn_len == 1) { 

for($i=0, $fs=0; $i<$start; $fs++) 
$i += (ord($str[$fs]) <= 0xa0) ? 1 : 0.5; 
for($i=0, $fe=$fs; $i<$long; $fe++) 
$i += (ord($str[$fe]) <= 0xa0) ? 1 : 0.5; 
$long = $fe - $fs; 


else { 

$fs = (is_chinese($str, $start) == 1) ? $start - 1 : $start; 
$fe = $long + $start - 1; 
$end = ( is_chinese($str, $fe) == -1 ) ? $fe -1 : $fe; 
$long = $end - $fs + 1; 


$f_str = substr($str, $fs, $long); 
if($ltor == false) $f_str = cstrrev($f_str); 

return $f_str; 


# 取左字符串 
# 當(dāng)cn_len == 2 時 $long 取左邊多少個字,反之則取左邊多少個字節(jié) 
function cleft(&$str, $long, $cn_len=2) { 
$f_str = csubstr($str, 0, $long, true, $cn_len); 
return $f_str; 


# 取右字符串 
function cright(&$str, $long, $cn_len=2) { 
$f_str = cstrrev($str); 
$f_str = csubstr($f_str, 0, $long, true, $cn_len); 
$f_str = cstrrev($f_str); 
return $f_str; 

# 對含有中文字符的文章分行格式化 
# 再也不會發(fā)生因換行問題而產(chǎn)生的種種問題啦?。?! 
# 注:文章的每一行必須用 n (chr(13))進(jìn)行分行 
# $width 每行多少字符 
# $br 將 每行用什么字符當(dāng)結(jié)束符 

function ctext_wrap(&$text, $width=60, $br="<BR>") { 
$lines = explode("n",$text); 
$rows = count($lines); 

for($i=0; $i<$rows; $i++) { 
$len = strlen($lines[$i]); 
for($j=0; $j<$len; $j+=$width) { 
$p = $j + $width - 1; 
$k = 0; 
if($p<$len) { 
while(!is_chinese($lines[$i], $p) && $lines[$i][$p] != ' ' && $p>$j) { 
$k ++; 
$p --; 

if($p == $j) $k = 0; 

$f_str .= csubstr($lines[$i], $j, $width-$k) . $br; 
$j -= $k; 


return $f_str; 

相關(guān)文章

  • PHP微信支付結(jié)果通知與回調(diào)策略分析

    PHP微信支付結(jié)果通知與回調(diào)策略分析

    這篇文章主要介紹了PHP微信支付結(jié)果通知與回調(diào)策略,結(jié)合實(shí)例形式分析了php微信支付結(jié)果的回調(diào)處理相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • 淺談php://filter的妙用

    淺談php://filter的妙用

    php://filter是PHP中獨(dú)有的協(xié)議,利用這個協(xié)議可以創(chuàng)造很多“妙用”,有需要的朋友們學(xué)習(xí)下
    2019-03-03
  • php中執(zhí)行系統(tǒng)命令的方法

    php中執(zhí)行系統(tǒng)命令的方法

    這篇文章主要介紹了php中執(zhí)行系統(tǒng)命令的方法,涉及escapeshellcmd及exec方法的使用技巧,需要的朋友可以參考下
    2015-03-03
  • PHP設(shè)計模式之責(zé)任鏈模式的深入解析

    PHP設(shè)計模式之責(zé)任鏈模式的深入解析

    本篇文章是對PHP設(shè)計模式中的責(zé)任鏈模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP實(shí)現(xiàn)的解漢諾塔問題算法示例

    PHP實(shí)現(xiàn)的解漢諾塔問題算法示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)的解漢諾塔問題算法,簡單描述了漢諾塔問題及相應(yīng)的實(shí)現(xiàn)算法,并結(jié)合實(shí)例形式給出了PHP具體操作技巧,需要的朋友可以參考下
    2018-08-08
  • shopex中集成的站長統(tǒng)計功能的代碼簡單分析

    shopex中集成的站長統(tǒng)計功能的代碼簡單分析

    shopex中集成了一鍵開啟站長統(tǒng)計功能,而無需去CNZZ注冊,在phpcms,phpwind等中也都有類似的功能,下面是對這個功能的簡單分析,以后也可以偷偷用在自己的網(wǎng)站中,呵呵。
    2011-08-08
  • php實(shí)現(xiàn)子字符串位置相互對調(diào)互換的方法

    php實(shí)現(xiàn)子字符串位置相互對調(diào)互換的方法

    這篇文章主要介紹了php實(shí)現(xiàn)子字符串位置相互對調(diào)互換的方法,可實(shí)現(xiàn)簡單字符串中兩個子字符串互換的功能,涉及php字符串運(yùn)算與插入、替換等操作的相關(guān)技巧,需要的朋友可以參考下
    2016-06-06
  • PHP避免SQL注入的常用方法

    PHP避免SQL注入的常用方法

    在開發(fā)php網(wǎng)站時,經(jīng)常需要和數(shù)據(jù)庫交互來存儲和獲取數(shù)據(jù),然而,如果不對用戶輸入的數(shù)據(jù)進(jìn)行處理,就可能會導(dǎo)致SQL注入攻擊,SQL注入是一種常見的安全漏洞,攻擊者可以通過惡意構(gòu)造的輸入數(shù)據(jù)來進(jìn)入到數(shù)據(jù)庫中,從而獲取或篡改數(shù)據(jù)的行為
    2024-04-04
  • PHP+APACHE實(shí)現(xiàn)網(wǎng)址偽靜態(tài)

    PHP+APACHE實(shí)現(xiàn)網(wǎng)址偽靜態(tài)

    這篇文章主要介紹了PHP+APACHE通過使用mod rewrite模塊實(shí)現(xiàn)網(wǎng)址偽靜態(tài)的相關(guān)資料,需要的朋友可以參考下
    2015-02-02
  • PHP使用CURL實(shí)現(xiàn)下載文件功能示例

    PHP使用CURL實(shí)現(xiàn)下載文件功能示例

    這篇文章主要介紹了PHP使用CURL實(shí)現(xiàn)下載文件功能,結(jié)合具體實(shí)例形式分析了php基于curl的文件下載實(shí)現(xiàn)技巧,代碼注釋有詳細(xì)的功能說明,并附帶了curl參數(shù)的功能講解,需要的朋友可以參考下
    2019-06-06

最新評論

拜泉县| 巨鹿县| 阿荣旗| 通化市| 蕉岭县| 江陵县| 武隆县| 望谟县| 同仁县| 新绛县| 方正县| 大石桥市| 芦溪县| 宝丰县| 富锦市| 平乡县| 鄯善县| 综艺| 泸西县| 揭西县| 双鸭山市| 梅河口市| 渭源县| 江北区| 北安市| 西和县| 蒙城县| 漾濞| 民县| 遵化市| 新安县| 集安市| 连平县| 汝南县| 伊春市| 甘肃省| 沂水县| 德令哈市| 海门市| 师宗县| 股票|