Heim > Backend-Entwicklung > PHP-Tutorial > PHP正则小问题

PHP正则小问题

WBOY
Freigeben: 2016-06-23 14:14:14
Original
769 Leute haben es durchsucht

Array
(
[description] => HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=40EA513DEFAE87D378EACB79C4E8A1B5; Path=/ipcam
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 27 Jun 2013 01:08:23 GMT
Server: Apache-Coyote/1.1

c1b





1.0
GBK
UserLogin
244ab25cf7f0258401c2ae0b038ead0a


0
}

这是原字符串,我想取出其中的xml那段字符串,要肿么来写那个正则,自己写的总是为空,整不出来。

结果应该为:





1.0
GBK
UserLogin
244ab25cf7f0258401c2ae0b038ead0a





回复讨论(解决方案)

那你是怎么写的?

那你是怎么写的?

我写的正则都只能取一行的数据,比如取xml第一行的数据:
'/\/'

可我如果取多行xml数据时就取不到,比如:
'/\/'

$preg='/<\?xml version\="1\.0" encoding\="UTF\-8" \?>(.*?)\}/ius';preg_match_all($preg, $str, $lined);print_r($lined);
Nach dem Login kopieren


自己看,剩下的自己处理,记得后面不要漏了ius,否则就为空了,后面的是不区分大小写以及多行模式匹配的


那你是怎么写的?

我写的正则都只能取一行的数据,比如取xml第一行的数据:
'/\<\?.*\?\>/'

可我如果取多行xml数据时就取不到,比如:
'/\<\?xml.*Envelope\>/'

你这个也可以

$preg='/\<\?xml.*Envelope\>/ius';preg_match_all($preg, $str, $lined);print_r($lined);
Nach dem Login kopieren

结果自己看

关键是后面的ius不区分大小写多行匹配模式

关键是后面的ius不区分大小写多行匹配模式


高手。多谢版主们。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage