実践的なヒント: PHP で中国語の文字列をインターセプトする際の問題
ヒント|質問|中国語|文字列
次のコードは、GB2312 エンコードに使用されます。PHP では、中国語の文字列をインターセプトするのが問題です。その解決策は、文字化けを避けるために、値が 128 以上であるかどうかに基づいてそれが 2 バイト文字であるかどうかを判断することです。ただし、中国語と英語の混合、特殊記号などの問題は常にあります。ここで、参考のためにより包括的なものを書きます:
プログラムの説明:
1 len パラメータは漢字に基づいており、1len は次のとおりです。形式上、英語の 2 文字に相当します。見た目が良くなります
2. マジックパラメータが false に設定されている場合、中国語と英語は同等に扱われ、絶対的な文字数が取得されます
3。 htmlspecialchars() でエンコードされた文字列
4. GB2312 でのエンティティ文字モード () の処理
プログラム コード:
<ccid_code>function FSubstr($title,$start,$len="",$magic=true) {/** * powered by Smartpig * mailto:d.einstein@263.net */ $length = 0;if($len == "") $len = strlen($title);//判断起始为不正确位置if($start > 0){ $cnum = 0; for($i=0;$i<$start;$i++) { if(ord(substr($title,$i,1)) >= 128) $cnum ++; } if($cnum%2 != 0) $start--; unset($cnum);}if(strlen($title)<=$len) return substr($title,$start,$len);$alen = 0;$blen = 0;$realnum = 0;for($i=$start;$i<STRLEN($TITLE);$I++) if(ord($cur) }else{ } $ctype="0;" ++; $blen { if($magic) $realnum +="4;" $i $length $cstep="0;" i?,substr($title,$i,8),$match)) &#(\d+); if(preg_match(? else $alen ?'?) if(substr($title,$i,6)="=" ?"?) ?&?) if(substr($title,$i,5)="=" ?>?) if(substr($title,$i,4)="=" ?<?) ?&?) if($cur="=" $cur="substr($title,$i,1);">=128) { $cstep = 2; $length += 2; $i += 1; $realnum ++; if($magic) { $blen ++; $ctype = 1; } }else{ $cstep = 1; $length +=1; $realnum ++; if($magic) { $alen++; } } } if($magic) { if(($blen*2+$alen) == ($len*2)) break; if(($blen*2+$alen) == ($len*2+1)) { if($ctype == 1) { $length -= $cstep; break; }else{ break; } } }else{ if($realnum == $len) break; }}unset($cur);unset($alen);unset($blen);unset($realnum);unset($ctype);unset($cstep);return substr($title,$start,$length);}</ccid_code>

ホット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)

ホットトピック









Docker の起動に失敗した場合の解決策: 1. 実行ステータスを確認し、「echo 3 > /proc/sys/vm/drop_caches」コマンドを使用して占有メモリを解放します; 2. 「$netstat -nltp|grep .. .」を使用します。 「」コマンドでポートが占有されているかどうかを確認します。オンライン後に占有されていることが判明した場合は、空いているポートに変更して再起動してください。

タイトルは、Web ページのタイトルを定義する意味です。タグ内にあり、ブラウザのタイトル バーに表示されるテキストです。タイトルは、検索エンジンの最適化と Web ページのユーザー エクスペリエンスにとって非常に重要です。 HTML Web ページを作成するときは、より多くのユーザーがクリックして閲覧できるように、関連するキーワードと魅力的な説明を使用してタイトル要素を定義することに注意する必要があります。

ノード起動エラーの解決策: 1. ターミナルで直接「node xx.js」を実行します; 2. 起動スタートアップ項目「scripts」を追加します: {"test": "echo \"Error: no test specific\" && exit 1 " ,"start":"node service.js"}"; 3. 「npm start」を再実行します。

HTML のタイトルには、Web ページのタイトル タグが表示されます。これにより、閲覧者は現在のページの内容を知ることができるため、各 Web ページには個別のタイトルが必要です。

start メソッドと run メソッド $start()$ メソッドは、スレッドを開始するために使用されます。この時点では、スレッドは準備完了 (実行可能) 状態にあり、実行されていません。$cpu$ タイム スライスが取得されると、$ run()$メソッドの実行が開始されます。 $run()$ メソッドを直接呼び出すと、クラス内のメソッドが呼び出されるだけであり、このメソッドは基本的に現在のスレッドで実行されるため、$start()$ メソッドを使用して $run()$ を呼び出すことによってのみ実現できます。メソッド。真のマルチスレッド。サンプルコード@Slf4j(topic="c.Test4")publicclassTest4{publicstaticvoidmain(Strin)

publicclassTest1extendsThread{@Overridepublicvoidrun(){while(true){System.out.println(Thread.currentThread().getName());}} publicstaticvoidmain(String[]args){Test1test1=newTest1();test1.run() ;//出力結果 maintest1.start();//出力結果 Thread-0}}1.startstart は、

PHP は、多くの便利な機能を提供する人気のあるサーバー側プログラミング言語であり、そのうちの 1 つは配列の操作です。 PHP 配列を使用する場合、要素を削除する必要がある場合、unset() 関数を使用できます。 unset() 関数は、変数を削除するために PHP で使用される関数であり、配列内の要素を削除するために使用できます。構文は次のとおりです。 unset(array$array[,mixed$key1[,mixed$key2[,mixed

session_start() 関数は、PHP でセッションを開く関数の 1 つです。セッションは Web 開発において非常に一般的なテクノロジであり、セッションの基礎は、ユーザーが Web サイトにアクセスしたときに一意のセッション ID を割り当て、その後のアクセス時にこのセッション ID を使用してユーザーを識別することです。セッションは、ユーザーのログイン ステータス、ショッピング カートの内容、その他のユーザー情報を保存するために使用できます。また、Web サイト上の一部の機能に対する権限制御を実装するために使用することもできます。 PHP でセッションを開く方法は非常に簡単で、sess を使用するだけです。
