热搜:NVER node 开发 php

php根据网址获取网页标题和描述

2024-07-21 17:55:01
php根据网址获取网页标题和描述

namespace Xuyaoxiang;		class Snoopy {		private $pattern_array=array(	'title'=>'/(\s*.*)<\/title>/i',	'description'=>'/<meta +name="[d|D]escription" +content="(.*)" +\/>/',	'charset'=>'/charset=\"?([\w-]+)\"?/i',	);			public $url;		public $target_code="utf-8"; //目标编码		public $user_agent='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'; //模拟浏览器头部数据		function __construct($url)	{			$this->url=$url;				}		public function set_pattern($key,$val)	{		if(isset($this->pattern_array[$key])){return false;}		$this->pattern_array[$key]=$val;	} //只能够添加规则,不能更改原有的规则				function get_pege_content($pattern_key)	{						if($pattern_key=='')		{			return false;			}					$curl=curl_init();		// 设置你需要抓取的URL			curl_setopt($curl, CURLOPT_URL, $this->url);		// 设置header		curl_setopt($curl, CURLOPT_HEADER, 0);				// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);				curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);				// 运行cURL,请求网页		$data = curl_exec($curl);				if($data==false){return false;} 				preg_match($this->pattern_array['charset'],$data,$reg_charset); //获取网页编码		$page_charset=strtolower($reg_charset[1]);			$charset==$this->target_code || $data=mb_convert_encoding($data,$this->target_code,$page_charset); //如果不符合你设置的编码,进行转码				preg_match($this->pattern_array[$pattern_key],$data,$content); 			// 关闭URL请求		curl_close($curl);				return  trim($content[1]);	}}	 $snoopy=new snoopy("http://www.qq.com");		 $title=$snoopy->get_pege_content('title');			 print_r($title);</pre>   </p>
<p><br></p> </article >
      <div class="mimiwuqi pagebar-2">  </div>
      <div class="mimiwuqi art-tags">  </div>
      <div class="mimiwuqi art-copyright">
        <p>本文是由用户编写整理,所有内容的版权归原作者所有。如果侵犯了您的权益,请联系我删除<br></p>
      </div>
    </div>
    <div class="mimiwuqi prev-next">       <p class="mimiwuqi art-prev"> <a href="https://frontend.mimiwuqi.com/qianduan/397569.html" rel="prev"><span>上一篇</span>
        请教大神一个问题,php怎样支持<%each list as vo%>这种写法?        </a> </p>
                        <p class="mimiwuqi art-next"> <a href="https://frontend.mimiwuqi.com/qianduan/400293.html" rel="next"><span>下一篇</span>
        PHP截取中英文混合字符        </a> </p>
                </div>
  </div>
  <div class="mimiwuqi col-right r">
      <div class="mimiwuqi widget widgetModule widgetHotPost">
        <div class="mimiwuqi com-tit">
          <h4 class="mimiwuqi title-2">相关推荐</h4>
        </div>
        <ul class="mimiwuqi mod-main mod-post">
                     <li> <a href="https://frontend.mimiwuqi.com/qianduan/397570.html" target="_blank" title="php根据网址获取网页标题和描述" class="mimiwuqi clearfix">
            <div>
              php根据网址获取网页标题和描述            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397569.html" target="_blank" title="请教大神一个问题,php怎样支持<%each list as vo%>这种写法?" class="mimiwuqi clearfix">
            <div>
              请教大神一个问题,php怎样支持<%each list as vo%>这种写法?            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397568.html" target="_blank" title="面试总结(php)" class="mimiwuqi clearfix">
            <div>
              面试总结(php)            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397567.html" target="_blank" title="[Laravel 5 Fundamentals] 20 – Flash Message" class="mimiwuqi clearfix">
            <div>
              [Laravel 5 Fundamentals] 20 – Flash Message            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397566.html" target="_blank" title="关于四维的问题" class="mimiwuqi clearfix">
            <div>
              关于四维的问题            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397565.html" target="_blank" title="Laravel5学生成绩管理系统-02-Blade模板" class="mimiwuqi clearfix">
            <div>
              Laravel5学生成绩管理系统-02-Blade模板            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397564.html" target="_blank" title="关于js与php互相传值的介绍【转载+自身总结】" class="mimiwuqi clearfix">
            <div>
              关于js与php互相传值的介绍【转载+自身总结】            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397563.html" target="_blank" title="Laravel 的 Events 及 Observers(二)" class="mimiwuqi clearfix">
            <div>
              Laravel 的 Events 及 Observers(二)            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397562.html" target="_blank" title="php基础入门" class="mimiwuqi clearfix">
            <div>
              php基础入门            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397561.html" target="_blank" title="simplexml_load_string 在服务器 不可用,求大神解答!谢谢!" class="mimiwuqi clearfix">
            <div>
              simplexml_load_string 在服务器 不可用,求大神解答!谢谢!            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397560.html" target="_blank" title="php对象取值的事" class="mimiwuqi clearfix">
            <div>
              php对象取值的事            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397559.html" target="_blank" title="微信打印机是如何实现的" class="mimiwuqi clearfix">
            <div>
              微信打印机是如何实现的            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397558.html" target="_blank" title="每天laravel-20160724|abstract Genaerator-1" class="mimiwuqi clearfix">
            <div>
              每天laravel-20160724|abstract Genaerator-1            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397557.html" target="_blank" title="基于Swoole和Redis实现的并发队列处理系统" class="mimiwuqi clearfix">
            <div>
              基于Swoole和Redis实现的并发队列处理系统            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397556.html" target="_blank" title="php7无法使用MangoDB3.x" class="mimiwuqi clearfix">
            <div>
              php7无法使用MangoDB3.x            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397555.html" target="_blank" title="修改密码后接收不了数据" class="mimiwuqi clearfix">
            <div>
              修改密码后接收不了数据            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397554.html" target="_blank" title="进一步优化Yii2跨域的SSO登陆" class="mimiwuqi clearfix">
            <div>
              进一步优化Yii2跨域的SSO登陆            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397553.html" target="_blank" title="PHP+Swoole及时通讯" class="mimiwuqi clearfix">
            <div>
              PHP+Swoole及时通讯            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397552.html" target="_blank" title="关于php curl超时问题" class="mimiwuqi clearfix">
            <div>
              关于php curl超时问题            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/397551.html" target="_blank" title="PHP之基础篇1" class="mimiwuqi clearfix">
            <div>
              PHP之基础篇1            </div>
            </a> </li>
                  </ul>
      </div>
    </div>
  </div>
</div>
<footer class="footer">
  <div class="footer-bottom">
      <div class="container">
        <div class="footer-copyright">Copyright © 2009 mimiwuqi.com<span>・ </span><a rel="nofollow" target="__blank" href="https://beian.miit.gov.cn">晋ICP备2021011283号</a>  <script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?7b19f396c9feef68fe5082cad0b0eeff";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
</div>
      </div>
  </div>
  <div class="foot-link">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/truste.png" alt="TRUSTe Privacy Certification">	
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/icon3.png" alt="可信网站">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/f1ee261b96ae71e845efba398efeca02.png" alt="网站安全">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/a6ef792fec0a3f4f370cb8d8c6d11134.png" alt="服务时间">
  </div>
<div class="rollbar">
  <div class="rollbar-item"><a rel="nofollow" target="_blank" title="举报反馈留言"  href="https://www.mimiwuqi.com/e/tool/gbook/?bid=2"><i class="iconfont icon-fankui"></i>反馈</a></div>
  <div class="rollbar-item tap-qq" etap="tap-qq"><a rel="nofollow" target="_blank" title="QQ咨询" href="tencent://message/?uin=431571451&Site=qq&Menu=yes"><i class="iconfont icon-qq"></i></a></div>
  <div class="rollbar-item tap-weixin" etap="tap-weixin" data-id="0" title="关注微信"><i class="iconfont icon-weixin"></i><img src="/skin/mimiwuqi/images/weixin.png" alt="微信联系"></div>
  <div class="rollbar-item to_full" etap="to_full" title="全屏页面"><i class="iconfont icon-full"></i></div>
  <div class="rollbar-item to_top" etap="to_top" title="返回顶部"><i class="iconfont icon-shang"></i></div>
</div>  <div id="loginbox"></div>
  <script type="text/javascript" src="/skin/images/login.js"></script>  
</footer>
 

<div class="mimiwuqi m-mask"></div>
<script src="https://frontend.mimiwuqi.com/skin/mimiwuqi/js/jquery.fancybox.min.js"  type="text/javascript"></script>
<link rel="stylesheet" href="https://frontend.mimiwuqi.com/skin/mimiwuqi/css/jquery.fancybox.min.css">

<script>
$(function () {
        $('.content').find('img').each(function () {
                var _this = $(this);
                var _src = _this.attr("src");
                var _alt = 'php根据网址获取网页标题和描述';
                _this.wrap('<a data-fancybox="images" href="' + _src + '" data-caption="' + _alt + '"></a>');
				$(this).attr('title','' + _alt + '');
        })
})
const preElements = document.querySelectorAll('pre');
		preElements.forEach((pre, index) => {
			const code = document.createElement('code');
			code.textContent = pre.textContent;
			pre.textContent = '';
			pre.appendChild(code);
			const codebutton = document.createElement('button');
			codebutton.textContent = '复制';
			codebutton.className = 'hljs-button';
			pre.appendChild(codebutton);
			codebutton.addEventListener('click', function () {
				navigator.clipboard.writeText(code.textContent).then(() => {
					codebutton.textContent = '已复制';
					setTimeout(() => {
						codebutton.textContent = '复制';
					}, 2000);
				})
					.catch(err => {
						console.error('无法复制文本: ', err);

					});
			});
		});
</script>
</body>
</html>