php 如何抓到當前的 TITLE?
高洛峰
高洛峰 2017-04-11 09:46:25
[PHP讨论组]

如何用PHP抓取當前網頁的標題?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
怪我咯

javascript

// 当前页面,但是别人家的我大js貌似搞不了,如果有人会麻烦教教我
    document.write(document.title);

php

// 全国通用测网是否联通
$url = 'http://www.baidu.com';
// 你要什么标签
$tag = 'title';
// CURL 方式
$ch = curl_init();
// 设置选项
curl_setopt_array($ch, [
    CURLOPT_URL => $url,
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_RETURNTRANSFER => true,
    ]);
$data = curl_exec($ch); 
// 关闭此次连接
curl_close($ch);  
// 匹配下你要的标签
preg_match('/<'.$tag.'.*>\s*(.*)\s*<\/'.$tag.'>/',$data,$str);  
var_dump($str[1]); 

额,竟然你要获取自己的内容啊...


<?php
ob_start(function($buffer){
    preg_match('/<title.*>\s*(.*)\s*<\/title>/',$buffer,$str);
    return $str[1];
});

?>
<!DOCTYPE html>
<html>
<head>
    <title>我是一个title</title>
</head>
<body>
</body>
</html>
<?php

ob_end_flush();
迷茫

http头信息里面不包含title的,所以直接从请求里面是抓不到的。

解决方法一:先在页面用js获取title再当请求参数传过来。

解决方法二:根据请求的HTTP_REFERER,自己再用curl抓一遍页面,处理一下字符串,截取<title>和</title>之间的内容。

哈哈哈,希望对你有帮助

大家讲道理

composer包

"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*",
"guzzlehttp/guzzle": "6.2.*"

php代码

$url = "http://bosonnlp.com/account/login";
$body = (new \GuzzleHttp\Client)->get($url)->getBody()->getContents();
$title = (new \Symfony\Component\DomCrawler\Crawler($body))->filter('title')->text();
var_dump($title);

参考: 如何用php获取某个页面中的input的csrf_token?- 娃娃脾气的回答

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号