PHP インターセプト文字列関数の共有、PHP インターセプト文字列
初心者が PHP に、文字列の左または右から N 文字をインターセプトする関数を実現できる、asp に似た left 関数または right 関数があるかどうかを尋ねるのをよく見かけます。答えはもちろん「はい」です。 PHP の substr 関数はこれを行うことができますが、PHP では 2 つの関数を 1 つに結合しています。ここでは、文字列をインターセプトするためのより優れた関数を紹介します。
コードをコピーします コードは次のとおりです:
/**
* メソッドライブラリ-インターセプト文字列-[この関数の作者は不明です]
* @param 文字列 $string 文字列
* @param int $length 文字長
* @param string $dot インターセプト後に追加するかどうか...
* @param string $charset エンコーディング
* @戻り文字列
*/
パブリック関数cutstr($string, $length, $dot = ' ...', $charset = 'utf-8') {
if (strlen($string)
$string を返します;
}
$string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string) ;
$strcut = '';
if (strto lower($charset) == 'utf-8') {
$n = $tn = $noc = 0;
while ($n < strlen($string)) {
$t = ord($string[$n]); //ASCII
if($t == 9 || $t == 10 || (32
$tn = 1; $n++; $noc++;
elseif (194
$tn = 2; $n += 2; $noc += 2;
elseif (224
$tn = 3; $n += 3; $noc += 2;
elseif (240
$tn = 4; $n += 4; $noc += 2;
elseif (248
$tn = 5; $n += 5; $noc += 2;
elseif ($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} その他 {
$n++;
}
if($noc >= $length) {
休憩;
}
}
if ($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
} その他 {
for ($i = 0; $i
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
}
$strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut) ;
return $strcut.$dot;
}
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。
http://www.bkjia.com/PHPjc/951636.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/951636.html技術記事 PHP インターセプト文字列関数の共有、PHP 文字列インターセプトでは、初心者が PHP に、文字列の左または右から始まる N 文字をインターセプトできる、asp に似た left 関数または right 関数があるかどうかを尋ねるのをよく見かけます...