簡體   English   中英

php - 正則表達式獲取DIV標簽中的內容

[英]php - regex to get contents in DIV tags

您好,感謝您查看我的問題。 我需要從HTML片段中獲取一些數據。 這個源是一個受信任的/結構化的,所以我認為在這個HTML中使用正則表達式是可以的。 我認為Dom和php中的其他高級功能是一種矯枉過正。

以下是HTML代碼段的格式。

<div id="d-container">
  <div id="row-custom_1">
     <div class="label">Type</div>
     <div class="content">John Smith</div>
     <div class="clear"></div>
  </div>
</div>

在上面,請注意前2個DIV標簽設置了ID。 可能有幾個row-custom_1像div標簽,所以我需要逃避它們。

我的正則表達式實際上非常差,所以我期待你的幫助,從上面的html片段中抓住約翰史密斯。

它可能是這樣的

<div * id="row-custom_1" * > * <div * class="content" * >GRAB THIS </div>

但我不知道如何在正則表達式中做到這一點。 約翰史密斯部分肯定不會包含任何HTML。 它來自一個值得信賴的來源,它會刪除所有html並以上述格式提供數據。

我可以理解正則表達式無論如何都不是處理HTML的好主意。 非常感謝你的幫助。

30分鍾后編輯:很多很棒的人建議使用HTML解析器,所以我做了; 像魅力一樣工作。 因此,如果有人帶着類似的問題來到這里,作為愚蠢的問題作者,我建議使用DOM來完成工作。

這是一個簡單的基於DOM的代碼,用於從給定的HTML中獲取您的值:

$html = <<< EOF
<div id="d-container">
  <div id="row-custom_1">
     <div class="label">Type</div>
     <div class="content">John Smith</div>
     <div class="clear"></div>
  </div>
</div>
EOF;
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html); // loads your html
$xpath = new DOMXPath($doc);
$value = $xpath->evaluate("string(//div[@id='d-container']
         /div[@id='row-custom_1']/div[@class='content']/text())"); 
echo "User Name: [$value]\n"; // prints your user name

OUTPUT:

User Name: [John Smith]

暫無
暫無

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

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