搜尋

首頁  >  問答  >  主體

正規表示式 - PHP如何取得HTML一個元素裡面的內容

目前我是透過從網路抄來的正規實現的,可是並不能達到我想要效果。

目前我的方案是:

1

2

3

<code> $text=file_get_contents('404.html');

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

print($match[0]); </code>

可是最終輸出的內容是

1

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

我想要的是輸出2017年2月20日,也就是原因裡面的內容,可是對正則不了解,看了百科完全一臉懵逼。請問該如何實現?或是正規該怎麼寫才能輸出裡面的內容

为情所困为情所困2828 天前561

全部回覆(3)我來回復

  • 仅有的幸福

    仅有的幸福2017-05-16 13:08:41

    這個time就是類似html標籤,你用php的去html標籤函數,吧這個嵌套的標籤去掉,就可以了呀,看一下下面的程式碼,用去標籤函數strip_tags()試試看。具體的更多用法,你可查手冊。

    1

    2

    3

    <code>$text=file_get_contents('404.html');

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

    print(strip_tags($match[0])); </code>

    回覆
    0
  • 阿神

    阿神2017-05-16 13:08:41

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

    直接推薦兩個 php 解析 html 的,類似 jQuery 的用戶,就能讀取 html 元素了

    回覆
    0
  • PHPz

    PHPz2017-05-16 13:08:41

    strip_tags是php的一個函數,用來去除字串裡的html標籤,所以你這裡可以用strip_tags。既然你用了正規,也可以直接用正規完成,對程式更優化。請看下面正規

    1

    2

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

    print_r($match); </code>

    回覆
    0
  • 取消回覆