2013-12-18 40 views
0

我有这样的HTML内容..如何从这个大文本中获取这个字符串?

<!DOCTYPE html> 
<html lang="en"> 
<head> 

<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
<meta name="pageImpressionID" content="8d0c0cc6-93b3-4d6e-a8c0-9d4552c6d1db" /> 
<meta name="pageKey" content="uas-oauth2-auth-code-authorize" > 
<meta name="analyticsURL" content="/analytics/noauthtracker" /> 
//.......... Lot more 

我需要抓住从中8d0c0cc6-93b3-4d6e-a8c0-9d4552c6d1db。我试过strip_tags,但所有数据都被剥离了。有任何想法吗 ?

+0

双重分割或正则表达式,你有什么尝试 – Steve

+2

你可能需要解析HTML,或使用一些正则表达式,可能会打破,很难做出正确的 – casraf

回答

2

使用DOM解析器(如DOMDocument)来提取所需的数据。这里是你如何做到这一点:

  • 获取所有的<meta>使用getElementsByTagName()
  • 环标签通过他们,并检查标签的name属性是pageImpressionID
  • 如果是,简单地echo content属性

代码:

$dom = new DOMDocument; 
$dom->loadHTML($html); 
foreach ($dom->getElementsByTagName('meta') as $tag) { 
    if ($tag->getAttribute('name') === 'pageImpressionID') { 
     echo $tag->getAttribute('content'); 
    } 
} 

输出:

8d0c0cc6-93b3-4d6e-a8c0-9d4552c6d1db 
0

你可以只搜索字符串

<meta name="pageImpressionID" content=" 

,然后从复制位置+ 39到下一个撇号(在搜索字符串中的字符数)