php截取字符串并保留完整xml标签的函数代码_PHP
/**
* author: goosman
* blog: http://blog.csdn.net/lgg201
* mail: lgg860911@yahoo.com.cn
*/
$str = '01234567890120123456789';
function substr_remain_tag($s, $o, $l) {
$is_match = preg_match_all(
#该正则表达式解析xml标签, 标签属性内部支持转义符"\", 支持对"\"自身和对应引号的转义
(?: #属性列表
\s+ #前置空格
\w+ #属性名
\s* #属性名后的空白(为了兼容)
= #属性名值之间的等号
\s* #属性值前的空白(为了兼容)
(?: #属性值(引号处理)
" #双引号的情况
(?:
\\\\\\\\ #吃掉连续两个转义符(表示转义符自身)
\\\\" #吃掉转义符接着一个引号(表示转义的引号)
[^"\\\\]* #其他字符
)*
"
' #单引号情况
(?:
\\\\\\\\ #吃掉连续两个转义符(表示转义符自身)
\\\\' #吃掉转义符接着一个引号(表示转义的引号)
[^'\\\\]* #其他字符
)*
'
)
)*
>
.*? #标签内容
(?1)> #结束标签
;x
heredoc
, $s, $matches, PREG_OFFSET_CAPTURE, $o);
if ( $is_match ) {
foreach ( $matches[0] as $match ) {
$o0 = $match[1];
#标签左边界越过截取目标右边界, 退出
if ( $o0 >= $o + $l ) break;
$l0 = strlen($match[0]);
#标签右边界在截取目标右边界内, 继续
if ( $o0 + $l0
#以下为标签跨边界处理
$l = $o0 + $l0 - $o;
break;
}
}
return substr($s, $o, $l);
}
echo $str . chr(10);
echo substr_remain_tag($str, 0, 20) . chr(10);

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

インターセプト方法: 1. 単一文字をインターセプトします。構文は「string[index]」です。「string」はソース文字列を表し、「index」は取得する文字の添え字を表します。 2. 部分文字列をインターセプトします。構文は次のとおりです。 "string[start: end" ]"、"start" はインターセプトされる最初の文字のインデックス (インターセプト時にこの文字も含む)、"end" はインターセプトされる最後の文字のインデックス (この文字を除く) を表します。 ; 3. 文字列全体を取得します (構文「string[:]」)。

MySQL で LEFT 関数を使用して文字列の左側の部分をインターセプトする方法 データベース管理システムでは、文字列から特定の部分をインターセプトする必要がある状況によく遭遇します。 MySQL には、文字列の左側の部分をインターセプトするために使用できる LEFT 関数など、多くの組み込み文字列関数が用意されています。 LEFT 関数の構文は次のとおりです。 LEFT (str, length) ここで、str はインターセプトされる文字列、length はインターセプトされる長さです。次に、コード例を使用して、その方法を示します。

PHP の substr() 関数: 文字列の一部をインターセプトする方法には特定のコード例が必要です PHP プログラミングでは、文字列処理は最も一般的な操作の 1 つです。文字列の一部をインターセプトすることは、文字列を処理するときによく発生する要件です。 PHP では、組み込みの substr() 関数を使用して文字列の一部をインターセプトできます。この記事では、substr()関数の使い方を詳しく紹介し、具体的なコード例を示します。 substr() 関数の基本的な使用法は次のとおりです。

MySQL の LEFT 関数を使用して、指定された長さの文字列をインターセプトします。MySQL では、特定のニーズを満たすために文字列をインターセプトする必要があることがよくあります。中でもLEFT関数は指定した長さの文字列をインターセプトできる非常に実用的な関数です。この記事では、MySQL の LEFT 関数を使用して文字列をインターセプトする方法とコード例を紹介します。まず、LEFT 関数の構文を理解する必要があります。 LEFT 関数の基本構文は次のとおりです。 LEFT(string,lengtht

MySQL で RIGHT 関数を使用して文字列の右側の部分をインターセプトする方法 MySQL では、RIGHT 関数は文字列の右側の部分をインターセプトするために使用される関数です。インターセプトする文字列とインターセプトする長さの 2 つのパラメーターを受け取り、指定された長さを含む文字列を返します。 RIGHT 関数を使用すると、文字列の正しい部分を簡単に取得できます。以下では、コード例を通して RIGHT 関数の使用方法を示します。まず、インターセプトする文字列を保存するサンプル データ テーブルを作成する必要があります。 CR

js は、substring() メソッド、slice() メソッド、substr() メソッド、および split() メソッドを使用して文字列をインターセプトします。詳細な導入: 1. substring() メソッドは 2 つのパラメータ、つまり開始位置と終了位置を受け入れます; 2. slide() メソッドは負の数値をパラメータとして使用でき、インデックスが文字列の末尾から計算されることを示します。文字列; 3. substr() メソッド、2 つのパラメータ、つまり開始位置とインターセプトする文字数を受け取ります; 4. split() メソッドなど。

Golang は、さまざまな種類のアプリケーションの作成に使用できる強力なプログラミング言語です。その中でも正規表現を使ってXMLタグの属性値を検証するのはgolangの基本スキルです。この記事では、golangで正規表現を使ってXMLタグの属性値を検証する方法を紹介します。 XML は、Web 上でデータを交換するために一般的に使用されるマークアップ言語です。その構文構造は非常に厳密で、各要素にはタグと一連の属性が含まれている必要があります。 XML を使用する場合、多くの場合、タグ属性の値が一致するかどうかを確認する必要があります。
