PHP 中英文混合排版中處理字串常用的函式

2022-10-03 16:09:12 字數 1874 閱讀 9629

# 判斷某個位置是中文字元的左還是右半部分,或不是中文 

# 返回值 -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)  

if($i != $location)  

else  

return $f_str; 

}  # 中文字串倒置函式 

# 如果乙個將乙個有中文的字串用strrev倒過來,就會產生亂碼 

/* 

print cstrrev('this is 中文'); // 文中 si siht 

*/ 

function cstrrev(&$str)  

}  else  

}  return $f_str; 

}  /* 中文字串擷取函式 

一些中文字串擷取函式經常有一些問題,例如在一些自動換行程式中 

$a=「1中2」; 

經兩次擷取後, 

csubstr($str,$a,0,2); 

csubstr($str, $a, 2,2) 

由於載取位置www.cppcns.com指向「中」的右位元組,可能會是這樣的結果 

1, 2 

用本函式會產生正確的結果 

1中, 2 

*/ 

# start 開始位置,從0開始 

# long = 0 則從start 一直取到字串尾 

# ltor = true 時從左到右取字元,false 時到右到左取字元 

# $cn_len 中文字元按位元組取還是字數取,如果按字數取,則乙個中文當乙個位元組計算 

function csubstr(&$str, $start=0, $long=0, $ltor=true, $cn_len=2)  

els  

$f_str = substr($str, $fs, $long); 

if($ltor == false) $f_str = cstrrev($f_str); 

return $f_str; 

}  # 取左字串 

# 當cn_len == 2 時 $long 取左邊多少個字,反之則取左邊多少個位元組 

function cleft(&$str, $long, $cn_len=2)  

# 取右字串 

function cright(&$str, $long, $cn_len=2)  

# 對含有中文字元的文章分行格式化 

# 再也不會發生因換行問題而產生的種種問題啦!!! 

# 注:文章的每一行必須用 n (chr(13))進行分行 

# $width 每行多少字元 

# $br 將 每行用什麼字元當結束符 

function ctext_wrap(&$text, $width=60, $br="

")  

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

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

$j -= $k; 

}  } 

return $f_str; 

本文標題: php 中英文混合排版中處理字串常用的函式

本文位址:

PHP 中英文混合排版中處理字串常用的函式

判斷某個位置是中文字元的左還是右半部分,或不是中文 返回值 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 chines...

PHP中獲取中英文混合字串長度

今晚在寫框架的表單驗證類時,需要判斷某個字串長度是否在指定區間內,很自然地,想到了php中的strlen函式。str hello world echo strlen str 輸出12 然而在php自帶的函式中,strlen及mb strlen都是通過計算字串所佔位元組數來計算長度的,在不同的編碼情況...

中英文本元混合處理方法

1,txt檔案匯入sql時 303410001401?600 lang 4 t粵ig?0220?011840628900000?bpo 303410001501?600 landau中er?0220?011840628900000?bpo 303410001601?600 lang 6 t漢ig?0...