我如何从这个大文本中获取此字符串?

时间:2013-12-18 12:08:33

标签: php

我有这个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,但所有数据都被删除了。有任何想法吗 ?

2 个答案:

答案 0 :(得分:2)

使用诸如DOMDocument之类的DOM解析器来提取所需的数据。这是你如何做到的:

  • 使用<meta>
  • 获取所有getElementsByTagName()代码
  • 循环浏览它们并检查代码的name属性是否为pageImpressionID
  • 如果是,只需回显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

答案 1 :(得分:0)

你可以只搜索字符串

<meta name="pageImpressionID" content="

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