PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]_php技巧
语法 : string substr (string string, int start [, int length])
说明 :
substr( )传回 string的一部份字符串,由参数 start和 length指定。
如果 start是正数,传回的字符串将会从 string的第 start个字元开始。
Example :
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>
如果 start是负数,传回的字符串将会从 string结尾的第 start个字开始。
Example :
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>
如果有给予参数 length而且是正数时,传回的字符串将会从 start传回 length个字元。
如果有给予参数 length而且是负数时,传回的字符串将会结束于 string结尾的第 length个字元。
Example :
$rest = substr ("abcdef", 1, -1); // returns "bcde"
?>
dongyue,2005-01-07 11:10:41
substr --- 取得部份字符串
语法 : string substr (string string, int start [, int length])
说明 :
substr( )传回 string的一部份字符串,由参数 start和 length指定。
如果 start是正数,传回的字符串将会从 string的第 start个字元开始。
Example :
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>
如果 start是负数,传回的字符串将会从 string结尾的第 start个字开始。
Example :
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>
如果有给予参数 length而且是正数时,传回的字符串将会从 start传回 length个字元。
如果有给予参数 length而且是负数时,传回的字符串将会结束于 string结尾的第 length个字元。
Example :
$rest = substr ("abcdef", 1, -1); // returns "bcde"
?>
Utf-8、gb2312都支持的汉字截取函数
//截取中文字符串
/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa ="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = ''; for($i=0; $i{
if($i>=$start && $i{
if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)return $tmpstr;
}
}
$str="脚本之家一个不错的网站";
echo cut_str($str, 8, 5, 'gb2312');

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Word のページ番号が文字化けする場合の解決策: 1. Word 文書を開き、左上隅にある [ファイル] オプションをクリックします; 2. [詳細] オプションを選択し、[オプション] ボタンをクリックします; 3. [詳細] を選択します。 Word のオプション内; 4. . 「文書の内容を表示」の「フィールド値の代わりにフィールドコードを表示」を見つけて、先頭のチェックを外し、「OK」をクリックしてホームページに戻ります。

Linux の中国語の文字化け問題は、中国語の文字セットとエンコーディングを使用する場合によく見られる問題です。文字化けは、ファイルのエンコード設定が正しくない、システム ロケールがインストールまたは設定されていない、端末の表示設定エラーなどが原因で発生する可能性があります。この記事では、いくつかの一般的な回避策を紹介し、具体的なコード例を示します。 1. ファイルのエンコード設定を確認します。ファイルのエンコードを表示するには file コマンドを使用します。ターミナルで file コマンドを使用して、ファイルのエンコードを表示します: file-ifilename。出力に「charset」がある場合

Linux tty の中国語文字化けの解決策: 1. 「sudo apt-get install fbterm」コマンドでフォント fbterm をダウンロードする; 2. 「sudo fbterm」コマンドを実行する; 3. フォントとフォント サイズを「font-names」に変更する=Ubuntu Mono font-size=14」で十分です。

Tomcat 起動時の文字化けの解決策: 1. Tomcat の conf 設定ファイルを変更する; 2. システム言語を変更する; 3. コマンド ライン ウィンドウのエンコードを変更する; 4. Tomcat サーバーの設定を確認する; 5. プロジェクトのエンコードを確認する; 6. ログを確認するファイル; 7 、他の解決策を試してください。詳細な導入: 1. Tomcat の conf 構成ファイルを変更し、Tomcat の conf ディレクトリを開き、「logging.properties」ファイルなどを見つけます。

win11でテキストドキュメントが文字化けする問題を解決するにはどうすればよいですか?多くのユーザーがwin11システムを使用していると、テキストドキュメントが文字化けして正常に読むことができなくなり、この問題を解決する方法が分からない友人も多くいます。実際、この方法は難しいことではありません。以下に、Windows 11 のシステム ドキュメントが文字化けする問題を解決する手順を編集者がまとめました。何かのヒントになれば幸いです。文字化けした Windows 11 システム ドキュメントを解決する手順: 1. まず、win11 のコントロール パネルを開き、下の検索ボックスに「コントロール パネル」と入力し、[検索] をクリックしてコントロール パネルに入ります。 2. パネルに入ったら、時計とエリアを見つけてクリックして入力し、エリア オプションをクリックします。 3. 入力後、管理パネルをクリックし、システムの地域設定の変更をクリックします。

Windows 10では文字化けが多発しております。多くの場合、この背後にある理由は、オペレーティング システムが一部の文字セットのデフォルト サポートを提供していないか、設定された文字セット オプションにエラーがあることです。適切な薬を処方するために、実際の操作手順を以下で詳しく分析します。 Windows 10 の文字化けコードを解決する方法 1. 設定を開いて「時刻と言語」を見つけます 2. 次に「言語」を見つけます 3. 「言語設定の管理」を見つけます 4. ここで「システム地域設定の変更」をクリックします 5. 図のようにボックスをチェックしますそして、「必ず確認してください」をクリックします。

多くのユーザーがコンピュータを使用していると、拡張子が dll のファイルがたくさんあることに気づきますが、そのファイルの開き方が分からないユーザーも多いので、知りたい方は以下を参照してください。 dll ファイルを開いて編集するには: 1. 「exescope」というソフトウェアをダウンロードし、インストールします。 2. 次に、dll ファイルを右クリックし、[exescope でリソースを編集] を選択します。 3. ポップアップ エラー プロンプト ボックスで [OK] をクリックします。 4. 次に、右側のパネルで、各グループの前にある「+」記号をクリックして、グループに含まれるコンテンツを表示します。 5. 表示したい dll ファイルをクリックし、「ファイル」をクリックして「エクスポート」を選択します。 6. そうすれば、次のことができます

友人の中には、メモ帳を開こうと思っていますが、Win11 のメモ帳が文字化けしていることに気づき、どうすればよいかわかりませんが、実際には、通常は地域と言語を変更するだけで十分です。 Win11 メモ帳が文字化けする: 最初のステップ、検索機能を使用し、「コントロール パネル」を検索して開きます。 2 番目のステップ、時計と地域の下の [日付、時刻、または数値形式の変更] をクリックします。 3 番目のステップ、カードの上にある [管理] オプションをクリックします。 4 番目のステップでは、下の [システムの地域設定の変更] をクリックし、5 番目のステップでは、現在のシステムの地域設定を [中国語 (簡体字、中国)] に変更し、[OK] をクリックして保存します。
