ホームページ >バックエンド開発 >PHPチュートリアル >URLからWebページのTITLEを取得する 方法が愚かです。
curl キャプチャのタイトル
このコードは私自身の考えで書かれています。もっと良い方法があるかどうかはわかりません。いくつかアドバイスをお願いします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 この修飾子が設定されている場合、パターン内のドット メタ文字 (.) は改行を含むすべての文字と一致します。この設定を行わないと、改行文字は含まれません。
ありがとうございます