簡體   English   中英

preg_match_all多個模式保留空數組值

[英]preg_match_all multiple pattern leaves empty array values

我試圖了解帶有多個模式的preg_match_all ,所以我創建了html字符串變量和模式。

諸如修整之類的一切工作都很好,但是由於有多個模式,它會輸出一些具有空值的數組鍵。 如果您知道為什么會這樣,請告訴我並告訴我必須如何解決。

我的代碼:

<?php
        $cource = "<div><a href='test1'>  <img src=\"test2\" /> <img src='test3' > <script src='test4'> <link href='test5'> </div>";

        preg_match_all('/src=["\']([^"\']+)|href=\'([^\']+)/',$cource, $result); 

        var_dump($result);
?>

輸出:

在此處輸入圖片說明

由於使用兩個捕獲組,您將獲得空值,

  • 第一個是src
  • 第二個是href

因此,您將根據數據獲取空值,因為第一個元素具有屬性href ,而src空(因為它沒有),依此類推。

您可以在一個捕獲(第二個)組中獲取結果,剩下的第一個用於獲取從中獲取什么屬性的參考。

$cource = "<div><a href='test1'>  <img src=\"test2\" /> <img src='test3' > <script src='test4'> <link href='test5'> </div>";

preg_match_all('/(href|src)=["\']([^"\']+)/',$cource, $result); 

如果不需要引用屬性,可以使用非捕獲組?:

preg_match_all('/(?:href|src)=["\']([^"\']+)/',$cource, $result); 

實際中: https//eval.in/580585

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM