ホームページ  >  記事  >  バックエンド開発  >  漢字を抽出して文字の位置を計算する方法

漢字を抽出して文字の位置を計算する方法

WBOY
WBOYオリジナル
2016-06-13 12:56:23888ブラウズ

漢字を抽出して文字の位置を計算するにはどうすればよいですか?
文字列 1: 1 つ?二? //中国語の疑問符
文字列 2:?One?Two //英語の疑問符
文字列 3: One Two // 真ん中にスペースがあります

PHPで上記の文字列内の中国語の文字を一致させるにはどうすればよいですか?そしてキャラクターの位置を見つけてください
それを理解するのに長い時間がかかりました。これが私のコードです。

$k1 = "";
$k2 = "";
$k3 = "";
$k4 = "";
if(ord(substr($this->Keywords,1,1))>127)
{
$k1 = substr($this->キーワード,0,2);
}else {$k1=false;}
if(ord(substr($this->Keywords,2,1))>127)
{
$k2 = substr($this->キーワード,2,2);
}else {$k2=false;}
if(ord(substr($this->Keywords,3,1))>127)
{
$k3 = substr($this->キーワード,3,2);
}else {$k3=false;}
if(ord(substr($this->Keywords,4,1))>127)
{
$k4 = substr($this->キーワード,4,2);
}else {$k4=false;}


-----解決策--------------------------------
utf8 か gb2312 かによって異なります。
あなたのものはutf8検出だと思います。 UTF8 中国語は 3 バイトを占め、ヘッダー バイトは >127 です。
str_split の後、127 より大きいことが検出された場合は、次の 2 バイトも取得できます。
------解決策-----
$k1 = mb_substr($this->Keywords, 0, 1, "UTF-8");

- - ---解決策-------------------
<br />
$str	= '一?二?';<br />
$arr	= preg_split('/\?<br><font color='#FF8000'>------解决方案--------------------</font><br>?<br><font color='#FF8000'>------解决方案--------------------</font><br> /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);<br />
print_r($arr);<br />
//得到二维数组,$arr[$i][0] 匹配满足的字符,$arr[$i][1]匹配位置<br />
//这个位置是strlen,如果中文算一个字符,只需要截取前面那段字符,用mb_strlen即可<br />
<br />
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。