php获取网页的title、description、keyword等任意hmtl节点的内容

1,047次阅读
没有评论

获取title

通过正则:

<?php

$url = 'http://192.168.3.114:8080/#/';

function getTagContent($str, $tag = 'title'){
    preg_match('/<'.$tag.'.*>\s*(.*)\s*<\/'.$tag.'>/',$str, $res);
    return $res;
}

var_dump(getTagContent(file_get_contents($url)));

执行结果:

PS C:\Users\root\Desktop> php .\index.php
array(2) {
  [0]=>
  string(81) "<title>SeekStask工作台,聚合搜索,用户至上的极客工作台</title>"
  [1]=>
  string(66) "SeekStask工作台,聚合搜索,用户至上的极客工作台"
}

xpath方法

<?php

$url = 'http://192.168.3.114:8080/#/';
$res = file_get_contents($url);

$dom = new DOMDocument();
$dom->loadHTML($res);
$dom->normalize();

$xpath = new DOMXPath($dom);
$data = $xpath->query('/html/head/title');


var_dump($data->item(0)->nodeValue);

  执行结果:

PS C:\Users\root\Desktop> php .\index.php
string(66) "SeekStask工作台,聚合搜索,用户至上的极客工作台"

推荐xpath方法,通过它可以获取页面任意hmtl节点的内容。

获取viewport、description、keyword

php内部函数get_meta_tags可以获取网页的viewport、description、keyword等属性:

<?php

$url = 'http://192.168.3.114:8080/#/';
$res = get_meta_tags($url);
var_dump($res);

执行结果:

PS C:\Users\root\Desktop> php .\index.php
array(5) {
  ["viewport"]=>
  string(37) "width=device-width, initial-scale=1.0"
  ["robots"]=>
  string(23) "max-image-preview:large"
  ["keywords"]=>
  string(12) "XPath 语法"
  ["description"]=>
  string(356) "XPath 语法   XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。  XML 实例文档 我们将在下面的例子中使用这个 XML 文档。  实例 [mycode3 type=&#039;xml&#039;]        Harry Potter   29.99      Learning XML   39.95    [/mycode3]  选取节点 .."
  ["apple-mobile-web-app-title"]=>
  string(12) "菜鸟教程"
}
facingscreen
版权声明:本站原创文章,由 facingscreen2022-10-29发表,共计1343字。
转载说明:本文为搜栈网原创文章,除特殊说明外皆由CC-4.0协议发布,转载请注明出处,如有帮助欢迎打赏。
评论(没有评论)
验证码