ホームページ バックエンド開発 PHPチュートリアル 正規表現を使用して、指定された開始位置のソース文字列から固定長の文字列をインターセプトする_PHP チュートリアル

正規表現を使用して、指定された開始位置のソース文字列から固定長の文字列をインターセプトする_PHP チュートリアル

Jul 13, 2016 pm 04:58 PM
コード 位置 存在する インターセプト 指定 通常 ソース 使用 始める

[コード]正規表現を使用して、ソース文字列(中国語を含む)から指定された開始位置から固定長文字列をインターセプトします[第4版]
[コード] 通常のルールを使用して、指定された開始位置から始まるソース文字列から特定の長さの文字列をインターセプトします [第 4 版]
【コード】正規表現を使って、指定した開始位置からソース文字列から一定の長さの文字列をインターセプトする【第四改訂】
【コード】正規表現を使ってソース文字列から一定バイト長の文字列を先頭から切り出します
【コード】正規表現を使用して、指定された開始位置から始まるソース文字列から一定の長さの文字列をインターセプトします

(ところで: 中国語のエンコーディングは非常に複雑で、やや不合理です。上位ビットは 0xa1 ~ 0xfe (255 である 0xff は Telnet プロトコルで重要な役割を果たすため、0xff を除く)、下位ビットは 0x40 ~ 0xfe です。GBK上位ビットを 0x81-0xfe に拡張しました


最後のバイトが間違った中国語でインターセプトされるかどうかについての説明:
漢字の半分がインターセプトされた場合、最後のバイトは上位バイトである必要があり、その ASCII コードは 0x81 より大きくなります。
中国語の上位バイトは 0x81 より大きいですが、下位バイトには制限がないためです。
完全な漢字: [0x81-0xfe][0x40-0xfe]
したがって、正規表現を使用して、中国語と中国語以外の文字を順番に抽出します。中国語が優先されます。
最後のバイト、漢字の半分が傍受されると、それは非漢字となり、漢字の上位バイトになります
そして、このバイトが[0x81-0xfe]にあるかどうかを判断することで、インターセプトが間違っているかどうかを知ることができます。


//------------------------------------------------ ---------------
// ファイル名:preg_substr.php
// 説明: 正規表現を使用して、指定された開始位置から始まるソース文字列から一定量の文字列をインターセプトします
//------------------------------------------------ ----------

/// 関数の説明
/// 関数名: preg_substr
/// 関数バージョン: 4 番目のリビジョン
/// 関数: 正規表現を使用して、指定された開始位置から始まるソース文字列からある程度の文字列をインターセプトします
/// 関数パラメータ:
/// $strSource : ソース文字列
/// $intStart: 開始位置、デフォルトは 0 で、最初から開始することを意味します
/// $intLen: 切片の長さ、デフォルトは 32 です

関数 preg_substr($strSource, $intStart=0, $intLen=32)
{
is_int($intLen) ?0:die("len は整数ではありません");
is_int($intStart) ?0:die("開始値が整数ではありません");
if ($intStart>=0 && $intLen>0 && @preg_match('/^(.{'.$intStart.'})(.{0,'.$intLen.'})/si', $strSource) ){
@preg_match('/^(.{'.$intStart.'})(.{0,'.$intLen.'})/si', $strSource, $regs);
@preg_match_all('/([x81-xFE].|.)/sim', $regs[1], $regs1, PREG_PATTERN_ORDER);
@preg_match('/^[x81-xFE]$/',$regs1[1][count($regs1[1])-1])?$intStart--:0;

@preg_match('/^(.{'.$intStart.'})(.{0,'.$intLen.'})/si', $strSource, $regs);
@preg_match_all('/([x81-xFE].|.)/sim', $regs[2], $regs1, PREG_PATTERN_ORDER);
@preg_match('/^[x81-xFE]$/',$regs1[1][count($regs1[1])-1])?$intLen--:0;

@preg_match('/^(.{'.$intStart.'})(.{0,'.$intLen.'})/si', $strSource, $regs);

$strResult = $regs[2];
}その他{
$strResult = "";
}
$strResult を返します;
}

関数 preg_substr2($strSource, $intStart=0, $intLen=32)
{
is_int($intLen) ?0:die("len は整数ではありません");
is_int($intStart) ?0:die("開始値が整数ではありません");
if ($intStart>=0 && $intLen>=0)
{
$strResult = substr($strSource, 0, $intStart);
@preg_match_all('/([x81-xFE].|.)/sim', $strResult, $regs, PREG_PATTERN_ORDER);
if(@preg_match('/^[x81-xFE]$/',$regs[1][count($regs[1])-1], $regs)){
$intStart--;
}

$strResult = substr($strSource, $intStart, $intLen);
@preg_match_all('/([x81-xFE].|.)/sim', $strResult, $regs, PREG_PATTERN_ORDER);
if(@preg_match('/^[x81-xFE]$/',$regs[1][count($regs[1])-1], $regs)){
$strResult = substr($strSource, $intStart, --$intLen);
}
}
$strResult を返します;
}

$strHTML = << 腹部

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631416.html技術記事 [コード] 正規表現を使用して、ソース文字列 (中国語を含む) から指定された開始位置から固定長文字列をインターセプトします。 [第 4 版] [コード] 正規表現を使用して、ソース文字列 (中国語を含む) から指定された開始位置から固定長文字列をインターセプトします。指定された開始位置...
からの抜粋
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

スタードーム鉄道クロッカー映画テレビパークの折り紙鳥の場所 スタードーム鉄道クロッカー映画テレビパークの折り紙鳥の場所 Mar 27, 2024 pm 11:51 PM

スター ドーム鉄道のクローカー 映画テレビ パークには、合計 20 羽の折り紙の鳥がいます。多くのプレイヤーは、クロッカー映画テレビ パークのどこに折り紙の鳥があるのか​​知りません。編集者は、誰もがわかるように、各折り紙の鳥の場所をまとめました。検索して、具体的な内容については、クローカー映画テレビ公園の折り紙の鳥の場所に関するこの最新のまとめをご覧ください。本海スタードーム鉄道のご案内:クルックムービーパーク1階2、クルックムービーパーク2階のオリガミバード スタードーム鉄道

Copilot を使用してコードを生成する方法 Copilot を使用してコードを生成する方法 Mar 23, 2024 am 10:41 AM

プログラマーとして、私はコーディング体験を簡素化するツールに興奮しています。人工知能ツールの助けを借りて、デモ コードを生成し、要件に応じて必要な変更を加えることができます。 Visual Studio Code に新しく導入された Copilot ツールを使用すると、自然言語によるチャット対話を備えた AI 生成コードを作成できます。機能を説明することで、既存のコードの意味をより深く理解できます。 Copilot を使用してコードを生成するにはどうすればよいですか?始めるには、まず最新の PowerPlatformTools 拡張機能を入手する必要があります。これを実現するには、拡張機能のページに移動し、「PowerPlatformTool」を検索して、[インストール] ボタンをクリックする必要があります。

Meituan Daily Voucherの場所はどこですか_Meituan Daily Voucherの場所の紹介 Meituan Daily Voucherの場所はどこですか_Meituan Daily Voucherの場所の紹介 Mar 27, 2024 pm 05:11 PM

1. 携帯電話で Meituan を開き、ホームページの左上隅にあるテイクアウト オプションをクリックします。 2. テイクアウトプラットフォームのページに入ると、ホームページに毎日のクーポンのあるセクションが表示されますので、直接クリックしてください。 3. 天天神クーポンを入力すると、多くのアクティビティが表示され、「完了」をクリックすると、タスクを完了すると報酬を受け取ることができます。

PHPでint型をstringに変換する方法を詳しく解説 PHPでint型をstringに変換する方法を詳しく解説 Mar 26, 2024 am 11:45 AM

PHPでint型をstring型に変換する方法を詳しく解説 PHPの開発では、int型をstring型に変換する必要に遭遇することがよくあります。この変換はさまざまな方法で実現できますが、この記事では、読者の理解を深めるために、具体的なコード例とともに、いくつかの一般的な方法を詳しく紹介します。 1. PHP の組み込み関数 strval() を使用する PHP には、さまざまな型の変数を文字列型に変換できる組み込み関数 strval() が用意されています。 int型をstring型に変換する必要がある場合、

python_python の繰り返し文字列チュートリアルで文字列を繰り返す方法 python_python の繰り返し文字列チュートリアルで文字列を繰り返す方法 Apr 02, 2024 pm 03:58 PM

1. まず pycharm を開いて、pycharm ホームページに入ります。 2. 次に、新しい Python スクリプトを作成し、右クリックして [新規] をクリックし、[Pythonfile] をクリックします。 3. 文字列、コード: s="-" を入力します。 4. 次に、文字列内のシンボルを 20 回繰り返す必要があります (コード: s1=s*20)。 5. 印刷出力コード、コード: print(s1) を入力します。 6. 最後にスクリプトを実行すると、下部に戻り値が表示されます。 - 20 回繰り返しました。

Golang 文字列が指定された文字で終わるかどうかを判断する方法 Golang 文字列が指定された文字で終わるかどうかを判断する方法 Mar 12, 2024 pm 04:48 PM

タイトル: Golang で文字列が特定の文字で終わるかどうかを判断する方法 Go 言語では、文字列が特定の文字で終わるかどうかを判断する必要があることがあります。これは文字列を処理するときに非常に一般的です。この記事では、Go 言語を使用してこの関数を実装する方法と、参考用のコード例を紹介します。まず、Golang で文字列が指定された文字で終わるかどうかを判断する方法を見てみましょう。 Golang の文字列内の文字はインデックス作成によって取得でき、文字列の長さは次のようになります。

Kuaishou はどこで公開されていますか?またその場所を変更するにはどうすればよいですか?アップロードされたビデオに位置情報を追加するにはどうすればよいですか? Kuaishou はどこで公開されていますか?またその場所を変更するにはどうすればよいですか?アップロードされたビデオに位置情報を追加するにはどうすればよいですか? Mar 21, 2024 pm 06:00 PM

中国で有名なショートビデオプラットフォームとして、Kuaishou は多くのクリエイターに自分の才能を披露し、人生を共有する機会を提供します。動画をアップロードする際、初心者クリエイターの中には動画の投稿場所を変更する方法に戸惑う方もいるかもしれません。この記事では、Kuaishou ビデオの公開場所を変更する方法を紹介し、このプラットフォームを有効に活用して作品を紹介できるように、Kuaishou ビデオ公開に関するいくつかのヒントを共有します。 1. Kuaishou はどこで公開されていますか?またその場所を変更するにはどうすればよいですか? 1. 公開インターフェイス: Kuaishou APP で、[公開] ボタンをクリックしてビデオ公開インターフェイスに入ります。 2. 場所情報: 公開インターフェースに「場所」列があり、クリックして場所選択インターフェースに入ります。 3. 場所を変更する: 場所選択インターフェイスで、[場所] ボタンをクリックして現在の場所を表示します。場所を変更したい場合は「場所」をクリックしてください

Go言語で文字列をインターセプトする方法 Go言語で文字列をインターセプトする方法 Mar 13, 2024 am 08:33 AM

Go 言語は、文字列インターセプトを含む豊富な文字列処理機能を提供する強力で柔軟なプログラミング言語です。 Go 言語では、スライスを使用して文字列をインターセプトできます。次にGo言語で文字列をインターセプトする方法を具体的なコード例を交えて詳しく紹介します。 1. スライスを使用して文字列をインターセプトする Go 言語では、スライス式を使用して文字列の一部をインターセプトできます。スライス式の構文は次のとおりです。slice:=str[start:end]where, s

See all articles