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);

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bahasa Go ialah bahasa pengaturcaraan yang berkuasa dan fleksibel yang menyediakan fungsi pemprosesan rentetan yang kaya, termasuk pemintasan rentetan. Dalam bahasa Go, kita boleh menggunakan kepingan untuk memintas rentetan. Seterusnya, kami akan memperkenalkan secara terperinci cara memintas rentetan dalam bahasa Go, dengan contoh kod khusus. 1. Gunakan penghirisan untuk memintas rentetan Dalam bahasa Go, anda boleh menggunakan ungkapan menghiris untuk memintas sebahagian daripada rentetan. Sintaks ungkapan slice adalah seperti berikut: slice:=str[start:end]where, s

Kaedah pemintasan: 1. Memintas aksara tunggal, sintaks "rentetan[indeks]", di mana "rentetan" mewakili rentetan sumber, dan "indeks" mewakili subskrip aksara yang akan diperolehi 2. Memintas subrentetan, sintaks "rentetan [start: end" ]", dengan "start" mewakili indeks aksara pertama yang akan dipintas (termasuk aksara ini apabila memintas), "end" mewakili indeks aksara terakhir yang akan dipintas (tidak termasuk aksara ini); . Dapatkan keseluruhan String, sintaks "rentetan[:]".

Cara menggunakan fungsi LEFT dalam MySQL untuk memintas bahagian kiri rentetan Dalam sistem pengurusan pangkalan data, kita sering menghadapi situasi di mana kita perlu memintas bahagian tertentu daripada rentetan. MySQL menyediakan banyak fungsi rentetan terbina dalam, termasuk fungsi KIRI, yang boleh digunakan untuk memintas bahagian kiri rentetan. Sintaks fungsi LEFT adalah seperti berikut: LEFT (str, length) dengan str ialah rentetan yang akan dipintas dan panjang ialah panjang yang akan dipintas. Seterusnya, kami akan menggunakan contoh kod untuk menunjukkan caranya

Fungsi substr() dalam PHP: Cara memintas sebahagian daripada rentetan memerlukan contoh kod khusus Dalam pengaturcaraan PHP, pemprosesan rentetan ialah salah satu operasi yang paling biasa. Memintas bahagian rentetan ialah keperluan yang sering ditemui semasa memproses rentetan. Dalam PHP, kita boleh menggunakan fungsi substr() terbina dalam untuk memintas sebahagian daripada rentetan. Artikel ini akan memperkenalkan penggunaan fungsi substr() secara terperinci dan memberikan contoh kod khusus. Penggunaan asas fungsi substr() adalah seperti berikut: rentetan

Gunakan fungsi LEFT MySQL untuk memintas panjang rentetan yang ditentukan Dalam MySQL, kita selalunya perlu memintas rentetan untuk memenuhi keperluan tertentu. Antaranya, fungsi LEFT adalah fungsi yang sangat praktikal yang boleh memintas panjang rentetan yang ditentukan. Artikel ini akan memperkenalkan cara menggunakan fungsi LEFT MySQL untuk memintas rentetan dan memberikan contoh kod. Pertama, kita perlu memahami sintaks fungsi LEFT. Sintaks asas fungsi LEFT adalah seperti berikut: LEFT(string,lengt

Cara menggunakan fungsi RIGHT dalam MySQL untuk memintas bahagian kanan rentetan Dalam MySQL, fungsi RIGHT ialah fungsi yang digunakan untuk memintas bahagian kanan rentetan. Ia menerima dua parameter: rentetan yang akan dipintas dan panjang yang akan dipintas, dan mengembalikan rentetan yang mengandungi panjang yang ditentukan. Gunakan fungsi RIGHT untuk mendapatkan bahagian rentetan yang betul dengan sangat mudah. Di bawah ini kami akan menunjukkan cara menggunakan fungsi RIGHT melalui contoh kod. Pertama, kita perlu mencipta jadual data sampel untuk menyimpan rentetan yang akan dipintas. CR

js menggunakan kaedah substring(), kaedah slice(), kaedah substr() dan kaedah split() untuk memintas rentetan. Pengenalan terperinci: 1. Kaedah substring() menerima dua parameter, iaitu kedudukan permulaan dan kedudukan akhir 2. Kaedah slice() membenarkan penggunaan nombor negatif sebagai parameter, menunjukkan bahawa indeks dikira dari penghujung; string; 3. kaedah substr(), yang menerima dua parameter, iaitu kedudukan permulaan dan bilangan aksara yang akan dipintas 4. kaedah split(), dsb.

Golang ialah bahasa pengaturcaraan yang berkuasa yang boleh digunakan untuk menulis pelbagai jenis aplikasi. Antaranya, menggunakan ungkapan biasa untuk mengesahkan nilai atribut tag XML adalah kemahiran asas dalam golang. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa untuk mengesahkan nilai atribut teg XML dalam golang. XML ialah bahasa penanda yang biasa digunakan untuk bertukar-tukar data di web. Struktur sintaksisnya sangat ketat, setiap elemen mesti mengandungi tag dan satu set atribut. Apabila menggunakan XML, selalunya perlu untuk mengesahkan sama ada nilai atribut teg sepadan
