ホームページ >バックエンド開発 >PHPチュートリアル >URLからWebページのTITLEを取得する 方法が愚かです。

URLからWebページのTITLEを取得する 方法が愚かです。

WBOY
WBOYオリジナル
2016-06-23 14:26:241149ブラウズ

この投稿の最終編集者は u012716911 2013-11-04 11:25:29 です。

curl キャプチャのタイトル

このコードは私自身の考えで書かれています。もっと良い方法があるかどうかはわかりません。いくつかアドバイスをお願いします
Baidu など一部の Web サイトはキャプチャできますが、Pacific Motors のホームページなど一部の Web サイトはキャプチャできません。

public function set_title()	{		// 获取进来URL		$url = $_POST['url'];		// $url = "www.pcauto.com.cn"; 抓不到!		//一连串的curl设置				$ch = curl_init();		curl_setopt($ch,CURLOPT_URL,$url);		curl_setopt($ch,CURLOPT_HEADER,0);		curl_setopt($ch,CURLOPT_ENCODING,'gzip');		curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);		$content_source = curl_exec($ch);		curl_close($ch);			//获取抓到内容的编码格式		$encode = mb_detect_encoding($content_source, array('GB2312','GBK','UTF-8','ASCII')); 				//转码		$content_source = iconv($encode, 'utf-8//IGNORE',$content_source);				//截取<title>		if(preg_match("/<title>(.*?)<\/title>/i",$content_source,$title))		{			echo $title[1];		}		else		{			echo '拉取标题失败';		}	}

ディスカッションに返信 (解決策)

b2386ffb911b14667cb8f0f91ea547a7([sS]*?)6e916e0f7d1e588d4f442bf645aedb2f

問題は通常のマッチングにあり、次の場合は s 修飾子を追加するだけです
(preg_match("/b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/is",$content_source,$title))

s この修飾子が設定されている場合、ドット メタ文字 (. ) は、以下を含むすべての文字と一致します。改行。この設定を行わないと、改行文字は含まれません。

通常の修飾子

問題は通常のマッチングにあります。s 修飾子を追加するだけです
if(preg_match("/b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/is",$content_source ,$title) )

s この修飾子が設定されている場合、パターン内のドット メタ文字 (.) は改行を含むすべての文字と一致します。この設定を行わないと、改行文字は含まれません。
ありがとうございます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。