utf8エンコードのルールに従って真に文字列をインターセプトする関数(utf8版sub_str)_PHPチュートリアル
/*
* 関数: 文字化けしないことを除いて、関数は substr と同じです
* パラメーター:
* 戻り値:
*/
function utf8_substr( $str , $start , $length=null ){
// 最初に通常通りインターセプトします。
$strlen = strlen( $str ); * その後、最初と最後の 6 バイトが完全である (不完全ではない) かどうかを判断します */
// パラメーター start が正の数の場合
if ( $start >= 0 ) {
// 約 6 バイト前方にカットします
$next_start = $start + $length; // 初期位置
$next_len = $next_start + 6 // 最初のバイトが完全な文字の最初のバイトではない場合、
$prev_start = $start - 6 >
$prev_segm = substr ( $str , $prev_start , $start - $prev_start );
}
// start は負の数
else{
// 約 6 バイト前方をインターセプト
$next_start = $strlen + $start + $length; //初期位置
$next_len = $next_start + 6 $next_segm = substr( $str , $next_start , $next_len );完全な文字の最初のバイト、その後約 6 バイトをインターセプトします。
$prev_start = $start - 6 : 0; str , $prev_start , $ start - $prev_start );
}
// 最初の 6 バイトが utf8 ルールに準拠しているかどうかを判断します
if ( preg_match( '@^([x80-xBF]{0,5})[xC0- xFD]?@' , $ next_segm , $bytes ) ){
if ( !empty( $bytes[1] ) ){
$bytes = $bytes[1] .= $bytes
} ;
// 判定後の 6 ワード セクションは utf8 ルールに準拠していますか
$ord0 = ord( $res[0] );
if ( 128 <= $ord0 && 191 >= $ord0 ){
// インターセプト後ろから追加して res の前に追加します。 ( $bytes[0] ){
$ bytes = $bytes[0];
}
}
}
$res を返す
コードをコピーします
コードは次のとおりです:
$str = 'dfjdjf test 13f test 65&2 datafdj(1 is mfe&...just'
var_dump( utf8_substr( $str) , 22 , 12 ) ; echo '
' ;
var_dump( $str , 22 , -6 ) '; 9 , 12 ) ; echo '
';
http://www.bkjia.com/PHPjc/326195.html
www.bkjia.com
true
技術記事
次のようにコードをコピーします。 /* * 関数: この関数は文字化けしないことを除いて、substr と同じです* パラメーター: * 戻り値: */ function utf8_substr( $str, $start, $length=null){ // まずは普通にカットします ..

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











Go 言語は、クロージャとリフレクションという 2 つの動的関数作成テクノロジを提供します。クロージャを使用すると、クロージャ スコープ内の変数にアクセスでき、リフレクションでは FuncOf 関数を使用して新しい関数を作成できます。これらのテクノロジーは、HTTP ルーターのカスタマイズ、高度にカスタマイズ可能なシステムの実装、プラグイン可能なコンポーネントの構築に役立ちます。

C++ 関数の名前付けでは、読みやすさを向上させ、エラーを減らし、リファクタリングを容易にするために、パラメーターの順序を考慮することが重要です。一般的なパラメータの順序規則には、アクション-オブジェクト、オブジェクト-アクション、意味論的な意味、および標準ライブラリへの準拠が含まれます。最適な順序は、関数の目的、パラメーターの種類、潜在的な混乱、および言語規約によって異なります。

効率的で保守しやすい Java 関数を作成するための鍵は、シンプルに保つことです。意味のある名前を付けてください。特殊な状況に対処します。適切な可視性を使用してください。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

2023 年 3 月 14 日に ChatGLM-6B が発売されて以来、GLM シリーズ モデルは幅広い注目と認知を得てきました。特にChatGLM3-6Bがオープンソース化されてからは、Zhipu AIが投入する第4世代モデルに対する開発者の期待が高まっている。 GLM-4-9B のリリースにより、この期待はついに完全に満たされました。 GLM-4-9B の誕生 小型モデル (10B 以下) により強力な機能を提供するために、GLM 技術チームはこの新しい第 4 世代 GLM シリーズ オープン ソース モデル、GLM-4-9B をほぼ半年の期間を経て発売しました。探検。このモデルは、精度を確保しながらモデルサイズを大幅に圧縮し、推論速度の高速化と効率化を実現しています。 GLM 技術チームの調査はまだ終わっていない

カスタム PHP 関数と定義済み関数の違いは次のとおりです。 スコープ: カスタム関数はその定義のスコープに限定されますが、事前定義関数はスクリプト全体からアクセスできます。定義方法: カスタム関数は function キーワードを使用して定義されますが、事前定義関数は PHP カーネルによって定義されます。パラメータの受け渡し: カスタム関数はパラメータを受け取りますが、事前定義された関数はパラメータを必要としない場合があります。拡張性: カスタム関数は必要に応じて作成できますが、事前定義された関数は組み込みで変更できません。

C++ の例外処理は、特定のエラー メッセージ、コンテキスト情報を提供し、エラーの種類に基づいてカスタム アクションを実行するカスタム例外クラスを通じて強化できます。 std::Exception から継承した例外クラスを定義して、特定のエラー情報を提供します。カスタム例外をスローするには、throw キーワードを使用します。 try-catch ブロックでdynamic_castを使用して、キャッチされた例外をカスタム例外タイプに変換します。実際の場合、open_file 関数は FileNotFoundException 例外をスローします。例外をキャッチして処理すると、より具体的なエラー メッセージが表示されます。

GateToken(GT)通貨とは何ですか? GT (GateToken) は、GateChain チェーンのネイティブ資産であり、Gate.io の公式プラットフォーム通貨です。 GT コインの価値は、Gate.io および GateChain エコロジーの発展と密接に関連しています。ゲートチェーンとは何ですか? GateChain は 2018 年に誕生し、Gate.io によって開始された新世代の高性能パブリック チェーンです。 GateChain は、ユーザーのオンチェーン資産のセキュリティを保護し、便利な分散トランザクション サービスを提供することに重点を置いています。 GateChain の目標は、エンタープライズレベルの安全で効率的な分散型デジタル資産ストレージ、配信、およびトランザクションのエコシステムを構築することです。ゲートチェーンにはオリジナルがあります
