正则表达式 - PHP如何获取HTML一个元素里面的内容
为情所困
为情所困 2017-05-16 13:06:41
0
3
504

目前我是通过从网上抄来的正则实现的,可是并不能达到我想要效果。

目前我的方案是:

 $text=file_get_contents('404.html');
 preg_match('/<time[^>]*itemprop=\"datePublished\".*?>.*?<\/time>/ism',$text,$match); 
print($match[0]); 

可是最终输出的内容是

<time datetime="2017-02-20T18:41:00+08:00" itemprop="datePublished">2017年2月20日</time>

我想要的是输出2017年2月20日,也就是原因里面的内容,可是对正则不了解,看了百科完全一脸懵逼。请问该如何实现?或是正则该怎么写才能输出里面的内容

为情所困
为情所困

Antworte allen(3)
仅有的幸福

这个time就是类似html标签,你用php的去html标签函数,吧这个嵌套的标签去掉,就可以了呀,看一下下面的代码,用去标签函数strip_tags()试试。具体的更多用法,你可查手册。

$text=file_get_contents('404.html');
 preg_match('/<time[^>]*itemprop=\"datePublished\".*?>.*?<\/time>/ism',$text,$match); 
print(strip_tags($match[0])); 
阿神

1、https://github.com/bupt1987/h...
2、https://github.com/paquettg/p...

直接推荐两个 php 解析 html 的,类似 jQuery 的用户,就能读取 html 元素了

PHPzhong

strip_tags是php的一个函数,用来去除字符串里的html标签,所以你这里可以用strip_tags。既然你用了正则,也可以直接用正则完成,对程序更优化。请看下面正则

preg_match('/<time[^>]*itemprop=\"datePublished\".*?>(.*?)<\/time>/ism',$text,$match);
print_r($match); 
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!