PHP文字列をインターセプトする方法は何ですか?

青灯夜游
リリース: 2023-03-10 11:02:02
オリジナル
4190 人が閲覧しました

方法: 1. "substr (文字列、開始位置、インターセプト長)" ステートメントを使用します。 2. "mb_substr (文字列、開始位置、インターセプト長、エンコーディング)" ステートメントを使用します。 3. " mb_strcut (文字列、開始位置、インターセプト長、エンコーディング)" ステートメント; 4. "$str[文字位置]" ステートメントを使用します。

PHP文字列をインターセプトする方法は何ですか?

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

substr(string, starting位置 , インターセプト長)

インターセプトされた文字列が複数バイトの場合、中国語など、文字や数字のインターセプトに適した文字化けが表示されます

$str = 'hello';
echo substr($str,1,2);//输出el
ログイン後にコピー

mb_substr( String 、開始位置、インターセプト長、文字エンコーディング)

文字ごとに分割された中国語のインターセプトに適しています

echo mb_substr('这个真的很nice',0,3,'utf-8'); //输出这个真
ログイン後にコピー

mb_strcut(文字列、開始位置、インターセプト長、文字エンコーディング)

バイト単位で分割

echo mb_strcut('这个真的很nice',0,3,'utf-8'); //输出这
ログイン後にコピー

$str[0]

文字列を文字として扱いますコレクション、中国語は適用されません。

$str = 'hello';
echo $str[0];//输出h
ログイン後にコピー

文字列に中国語と英語の数字などが含まれる場合があるため、中国語と英語を区別しない関数をカスタマイズして文字列を分割します

/**
* 
* 中英混合的字符串截取
* @param 待截取字符串 $sourcestr
* @param 截取长度 $cutlength
*/
function sub_str($sourcestr, $cutlength) {
	$returnstr = '';//待返回字符串
	$i = 0;
	$n = 0;
	$str_length = strlen ( $sourcestr ); //字符串的字节数 
	while ( ($n < $cutlength) and ($i <= $str_length) ) {
		$temp_str = substr ( $sourcestr, $i, 1 );
		$ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii码 
		if ($ascnum >= 224) {//如果ASCII位高与224,
			$returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根据UTF-8编码规范,将3个连续的字符计为单个字符  
			$i = $i + 3; //实际Byte计为3
			$n ++; //字串长度计1
		} elseif ($ascnum >= 192){ //如果ASCII位高与192,
			$returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根据UTF-8编码规范,将2个连续的字符计为单个字符 
			$i = $i + 2; //实际Byte计为2
			$n ++; //字串长度计1
		} elseif ($ascnum >= 65 && $ascnum <= 90) {//如果是大写字母,
			$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
			$i = $i + 1; //实际的Byte数仍计1个
			$n ++; //但考虑整体美观,大写字母计成一个高位字符
		}elseif ($ascnum >= 97 && $ascnum <= 122) {
			$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
			$i = $i + 1; //实际的Byte数仍计1个
			$n ++; //但考虑整体美观,大写字母计成一个高位字符
		} else {//其他情况下,半角标点符号,
			$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
			$i = $i + 1; 
			$n = $n + 0.5; 
		}
	}
	return $returnstr;
}
ログイン後にコピー

推奨学習: "PHPビデオチュートリアル

以上がPHP文字列をインターセプトする方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!