国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php基于seoreport類針對(duì)網(wǎng)站SEO信息檢查與獲取

2020-03-22 20:27:00
字體:
供稿:網(wǎng)友
這篇文章主要介紹了php實(shí)現(xiàn)專業(yè)獲取網(wǎng)站SEO信息類,實(shí)例分析了seoreport類針對(duì)網(wǎng)站SEO信息檢查與獲取的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了php實(shí)現(xiàn)專業(yè)獲取網(wǎng)站SEO信息類。具體如下:

這個(gè)seo類的功能包括:
- 檢查指定的網(wǎng)站響應(yīng)
- 獲取從該網(wǎng)站主頁的語言和其他meta標(biāo)簽數(shù)據(jù)的
- 獲取網(wǎng)站的導(dǎo)入鏈接,從Alexa的流量排名
- 獲取網(wǎng)站的導(dǎo)入鏈接,由谷歌索引的網(wǎng)頁數(shù)量
- 獲取網(wǎng)站的信任,從WOT排名。
- 獲取,因?yàn)樗堑谝粋€(gè)注冊(cè)的網(wǎng)站域名年齡
- 獲取的Twitter網(wǎng)站頁面的數(shù)量
- 獲取的Facebook鏈接的網(wǎng)站頁面
- 獲取網(wǎng)站谷歌網(wǎng)頁速度等級(jí)
- 獲取網(wǎng)站的谷歌網(wǎng)頁排名

 ?php * SEO report for different metrics * @category SEO * @author Chema chema@garridodiaz.com  * @copyright (c) 2009-2012 Open Classifieds Team * @license GPL v3 * Based on seo report script http://www.phpeasycode.com PHP html' target='_blank'>class SEOstatsclass seoreport{ * check if a url is online/alive * @param string $url * @return bool public static function is_alive($url) $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADERFUNCTION, curlHeaderCallback  curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_exec ($ch); $int_return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close ($ch); if ($int_return_code != 200 $int_return_code != 302 $int_return_code != 304) return FALSE; else return TRUE; * HTTP GET request with curl. * @param string $url String, containing the URL to curl. * @return string Returns string, containing the curl result. protected static function get_html($url) $ch = curl_init($url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch,CURLOPT_MAXREDIRS,2); if(strtolower(parse_url($url, PHP_URL_SCHEME)) == https ) curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,1); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,1); $str = curl_exec($ch); curl_close($ch); return ($str)?$str:FALSE; * get the domain from any URL * @param string $url public static function domain_name($url) $nowww = ereg_replace( www/. , ,$url); $domain = parse_url($nowww); if(!empty($domain[ host ])) return $domain[ host  else return $domain[ path  * get the metas from a url and the language of the site * @param string $url * @return array public static function meta_info($url) //doesn t work at mediatemple /*$html = new DOMDocument(); if(!$html- loadHtmlFile($url)) return FALSE;*/ if (!$html_content = self::get_html($url)) return FALSE; $html = new DOMDocument(); $html- loadHtml($html_content); $xpath = new DOMXPath( $html ); $url_info = array(); $langs = $xpath- query( //html  foreach ($langs as $lang) $url_info[ language ] = $lang- getAttribute( lang  $metas = $xpath- query( //meta  foreach ($metas as $meta) if ($meta- getAttribute( name )) $url_info[$meta- getAttribute( name )] = $meta- getAttribute( content  return $url_info; * Alexa rank * @param string $url * @return integer public static function alexa_rank($url) $domain = self::domain_name($url); $request = http://data.alexa.com/data?cli=10 dat=s url= . $domain; $data = self::get_html($request); preg_match( / POPULARITY URL= (.*?) TEXT= ([/d]+) // /si , $data, $p); return ($l[2]) ? $l[2] : NULL; * Alexa inbounds link * @param string $url * @return integer public static function alexa_links($url) $domain = self::domain_name($url); $request = http://data.alexa.com/data?cli=10 dat=s url= . $domain; $data = self::get_html($request); preg_match( / LINKSIN NUM= ([/d]+) // /si , $data, $l); return ($l[1]) ? $l[1] : NULL; * Returns total amount of results for any Google search, * requesting the deprecated Websearch API. * @param string $query String, containing the search query. * @return integer Returns a total count. public static function google_pages($url) //$query = self::domain_name($url); $url = http://ajax.googleapis.com/ajax/services/search/web?v=1.0 rsz=1 q= .$url; $str = self::get_html($url); $data = json_decode($str); return (!isset($data- responseData- cursor- estimatedResultCount)) ? 0  : intval($data- responseData- cursor- estimatedResultCount); * gets the inbounds links from a site * @param string $url * @param integer public static function google_links($url) $request = http://www.google.com/search?q= . urlencode( link: . $url) . hl=en  $data = self::get_html($request); preg_match( / p id=resultStats (About )?([/d,]+) result/si , $data, $l); return ($l[2]) ? $l[2] : NULL; * web of trust rating * @param string $url * @reutn integer public static function WOT_rating($url) $domain = self::domain_name($url); $request = http://api.mywot.com/0.4/public_query2?target= . $domain; $data = self::get_html($request); preg_match_all( / application name= (/d+) r= (/d+) c= (/d+) // /si , $data, $regs); $trustworthiness = ($regs[2][0]) ? $regs[2][0] : NULL; return (is_numeric($trustworthiness))? $trustworthiness:NULL; * how old is the domain? * @param string $domain * @return integer unixtime public static function domain_age($domain) $request = http://reports.internic.net/cgi/whois?whois_nic= . $domain . type=domain  $data = self::get_html($request); preg_match( /Creation Date: ([a-z0-9-]+)/si , $data, $p); return (!$p[1])?FALSE:strtotime($p[1]); * counts how many tweets about the url * @param string $url * @return integer public static function tweet_count($url) $url = urlencode($url); $twitterEndpoint = http://urls.api.twitter.com/1/urls/count.json?url=%s  $fileData = file_get_contents(sprintf($twitterEndpoint, $url)); $json = json_decode($fileData, true); unset($fileData); // free memory return (is_numeric($json[ count ]))? $json[ count ]:NULL; * Returns the total amount of Facebook Shares for a single page * @link https://graph.facebook.com/ * @param string The URL to check. * @return integer Returns the total amount of Facebook public static function facebook_shares($q) //Execution and result of Json $str = self::get_html( http://graph.facebook.com/?id= .urlencode($q)); $data = json_decode($str); //Return only number of facebook shares $r = $data- shares; return ($r != NULL) ? $r : intval( 0  * get the pagespeed rank over 100 * @param string $url * @return integer public static function page_speed($url) $url = https://developers.google.com/_apps/pagespeed/run_pagespeed?url= .$url. format=json  $str = self::get_html($url); $data = json_decode($str); return intval($data- results- score); * get google page rank * @param string $url * @return integer public static function page_rank($url) $query = http://toolbarqueries.google.com/tbr?client=navclient-auto ch= .self::CheckHash(self::HashURL($url)). features=Rank q=info: .$url. num=100 filter=0  $data = self::get_html($query);//die(print_r($data)); $pos = strpos($data, Rank_  if($pos === false) return NULL; else $pagerank = substr($data, $pos + 9); return $pagerank; // functions for google pagerank * To calculate PR functions public static function StrToNum($Str, $Check, $Magic) $Int32Unit = 4294967296; // 2^32 $length = strlen($Str); for ($i = 0; $i $length; $i++) { $Check *= $Magic; //If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31), // the result of converting to integer is undefined // refer to http://www.php.net/manual/en/language.types.integer.php if ($Check = $Int32Unit) { $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit)); //if the check less than -2^31 $Check = ($Check -2147483648) ? ($Check + $Int32Unit) : $Check; $Check += ord($Str{$i}); return $Check; * Genearate a hash for a url public static function HashURL($String) $Check1 = self::StrToNum($String, 0x1505, 0x21); $Check2 = self::StrToNum($String, 0, 0x1003F); $Check1 = 2; $Check1 = (($Check1 4) 0x3FFFFC0 ) | ($Check1 0x3F); $Check1 = (($Check1 4) 0x3FFC00 ) | ($Check1 0x3FF); $Check1 = (($Check1 4) 0x3C000 ) | ($Check1 0x3FFF); $T1 = (((($Check1 0x3C0) 4) | ($Check1 0x3C)) 2 ) | ($Check2 0xF0F ); $T2 = (((($Check1 0xFFFFC000) 4) | ($Check1 0x3C00)) 0xA) | ($Check2 0xF0F0000 ); return ($T1 | $T2); * genearate a checksum for the hash string public static function CheckHash($Hashnum) $CheckByte = 0; $Flag = 0; $HashStr = sprintf( %u , $Hashnum) ; $length = strlen($HashStr); for ($i = $length - 1; $i $i --) { $Re = $HashStr{$i}; if (1 === ($Flag % 2)) { $Re += $Re; $Re = (int)($Re / 10) + ($Re % 10); $CheckByte += $Re; $Flag ++; $CheckByte %= 10; if (0 !== $CheckByte) { $CheckByte = 10 - $CheckByte; if (1 === ($Flag % 2) ) { if (1 === ($CheckByte % 2)) { $CheckByte += 9; $CheckByte = 1; return 7 .$CheckByte.$HashStr;}

使用范例

 ?phpinclude seoreport.php ini_set( max_execution_time , 180); $url = (isset($_GET[ url ]))?$_GET[ url ]: http://phpclasses.org  $meta_tags = seoreport::meta_info($url); //die(var_dump($meta_tags)); //first check if site online if ($meta_tags!==FALSE) $stats = array(); $stats[ meta ] = $meta_tags; $stats[ alexa ][ rank ] = seoreport::alexa_rank($url); $stats[ alexa ][ links ] = seoreport::alexa_links($url); $stats[ domain ][ WOT_rating ] = seoreport::WOT_rating($url);  $stats[ domain ][ domain_age ] = seoreport::domain_age($url);  $stats[ social ][ twitter ] = seoreport::tweet_count($url);  $stats[ social ][ facebook ] = seoreport::facebook_shares($url); $stats[ google ][ page_rank ] = seoreport::page_rank($url); $stats[ google ][ page_speed ] = seoreport::page_speed($url); $stats[ google ][ pages ] = seoreport::google_pages($url); $stats[ google ][ links ] = seoreport::google_links($url); var_dump($stats); else Site not online. .$url;

總結(jié):以上就是本篇文的全部?jī)?nèi)容,希望能對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)推薦:

php操作圖片的大小修改、加水印、生成驗(yàn)證碼、輸出及保存

php流程控制及數(shù)學(xué)運(yùn)算

php實(shí)現(xiàn)新聞發(fā)布系統(tǒng)

以上就是php基于seoreport類針對(duì)網(wǎng)站SEO信息檢查與獲取的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲周县| 特克斯县| 云梦县| 瓦房店市| 沙雅县| 绥化市| 巴东县| 江川县| 永昌县| 塘沽区| 通州区| 治多县| 手游| 图片| 忻州市| 邳州市| 阜阳市| 阿拉善右旗| 新竹市| 北海市| 浦城县| 石柱| 舒城县| 金昌市| 旌德县| 延津县| 汉寿县| 加查县| 留坝县| 连山| 黄平县| 田林县| 绩溪县| 盐池县| 荥经县| 从化市| 冕宁县| 百色市| 新蔡县| 高要市| 海安县|