PHP が Web ページのタイトルを抽出し、無関係な SEO キーワードを削除する_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:44:17
オリジナル
808 人が閲覧しました

场景描述:

  过往我们在抽取网页标题的时候,都会直接抽取 之间的内容. 但实际情况是这样,例如javaeye 的一篇文章 http://www.iteye.com/news/21643 ,  的内容为 "10年软件开发教会我最重要的10件事 - 非技术 - ITeye资讯", 但实际引用中我们期望的标题应该为 "10年软件开发教会我最重要的10件事". 所以标题后面堆砌了很多不相关的关键字(应该是为了  seo 吧). 所以我们希望过滤掉这些关键字. 有下面的方法可以参考:


1. 查找 h1 等标签.(分析sina news 一些网站之后, 觉得不可行,会有很多干扰)

2. 从全文去标题后,将 之间的内容切割(按 _ | -)为 a1,a2,a3,a4,然后从最长的词组a3开始从全文查找. 如果查找成功,那么开始向左边迭代查询 a2,a1,直到查询失败为止 。左侧失败后,再继续向右迭代,同理. (这里我采用的是这种方法)


Php代码
/**
* @author pqcc
* @date: 2011-06-18
* 説明: Web ページのコンテンツを指定して、Web ページのタイトルを抽出します。抽出されたタイトルには SEO が含まれません。キーワード。
* 例: から直接抽出されたニュース タイトルの結果は、「909 万人を対象に今週土曜日に大学英語 CET-4 と CET-6 がテストされます_Sina Education_Sina.com」です。<br> * しかし私たちが望む結果は次のとおりです: 「 CET-4 と CET-6 は今週土曜日にテストされ、909 万人が参照します。 <br> * 適用範囲: トピックページなどを除いた記事の最終ページのタイトルの抽出<br>*/ <br> <br>class TitlePurify{ <br> <br> private $matches_preg = [-_s|—];   <br> <br> function getTitle($contents){/*{{{*/ <br> $preg = "/<title[^>]*>([w| ||W]*?)/私";  
preg_match($preg, $contents, $matches);  
if(count($matches)<=1){
return "标题抜取失败";  
}
$title = $matches[1];  
return $this->trimTitle($title, $contents);  
}/*}}}*/

function trimMeta($contents){/*{{{*/
// 首先去除 コンテンツ、 内容。   <br> $preg = "/<title[^>]*>([w| ||W]*?)/i";  
$contents = preg_replace($preg, , $contents);  
$preg = "/]*>/i";  
$contents = preg_replace($preg, , $contents);  
$contents を返します。  
}/*}}}*/


// 获取长度最长的項目所处的インデックス。  
function getMaxIndex($titles){/*{{{*/
$maxItemIndex = 0;  
$maxLength = 0;  
$loop = 0;  
foreach($titles as $item){
if(strlen($item)>$maxLength){
$maxLength = strlen($item);  
$maxItemIndex = $loop;  
}
$loop++;  
}
$maxItemIndex を返します。  
}/*}}}***/ $tempTitle = $titles[$maxItemIndex];
$result = $tempTitle;
$count = count($titles)
// 現在のインデックスから左に向かって繰り返します (最初のインデックスに到達するまで、またはマッチングは失敗します)。 [1]。


http://www.bkjia.com/PHPjc/478770.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/478770.html

技術記事

シーンの説明: 以前は、Web ページのタイトルを抽出する場合、そのタイトルの間にあるコンテンツを直接抽出していましたが、実際の状況は次のとおりです。たとえば、javaeye http://www.iteye.com の記事です。 /news/2164...





ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!