php教程|php手册
php,获取,网页,标题,和,内容,函数,时候,我们,需要,获取,网页,标题,与,内容,就,是个,采集,函数,这里
php教程-php手册
有时候我们需要获取网页的标题与内容,就是个采集函数,这里简单分享下,方便需要的朋友
代码如下:
function getPageContent($url) {
操作系统下载站源码,vscode换行自动缩进,ubuntu中su,tomcat 中文日志,c sqlite3存储数组,爬虫技术都包括什么编程语言,linux 删除 php,衡水安平网站seo优化,免费制作相册视频网站模板,一个网页多个 图片滚动,dedecms 旅游网站模板下载lzw
//$url=’;
装饰公司整站源码下载,vscode输错提示,ubuntu启用联网,tomcat无法记录日志,qt与sqlite3交互,调查问卷和网络爬虫的区别,php 根路径,淮南seo推广贵不贵,服务器系统下载网站源码下载,生物科技公司网站模板下载lzw
$pageinfo = array();
$pageinfo[content_type] = ”;
$pageinfo[charset] = ”;
$pageinfo[title] = ”;
$pageinfo[description] = ”;
$pageinfo[keywords] = ”;
$pageinfo[body] = ”;
$pageinfo[‘httpcode’] = 200;
$pageinfo[‘all’] = ”;
日报管理系统源码,ubuntu双机热备份,tomcat一直无法安装,爬虫app抓取教程,夸克下载的视频是php,家具seo专家lzw
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 8);
curl_setopt($ch, CURLOPT_FILETIME, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL,$url);
$curl_start = microtime(true);
$store = curl_exec ($ch);
$curl_time = microtime(true) – $curl_start;
if( curl_error($ch) ) {
$pageinfo[‘httpcode’] = 505; //gate way error
echo ‘Curl error: ‘ . curl_error($ch) .”/n”;
return $pageinfo;
}
//print_r(curl_getinfo($ch));
$pageinfo[‘httpcode’] = curl_getinfo($ch,CURLINFO_HTTP_CODE);
//echo curl_getinfo($ch,CURLINFO_CONTENT_TYPE).”/n”;
$pageinfo[content_type] = curl_getinfo($ch,CURLINFO_CONTENT_TYPE);
if(intval($pageinfo[‘httpcode’]) 200 or !preg_match(‘@text/html@’,curl_getinfo($ch,CURLINFO_CONTENT_TYPE) ) ) {
//print_r(curl_getinfo($ch) );
//exit;
return $pageinfo;
}
preg_match(‘/charset=([^/s/n/r]+)/i’,curl_getinfo($ch,CURLINFO_CONTENT_TYPE),$matches); //从header 里取charset
if( trim($matches[1]) ) {
$pageinfo[charset] = trim($matches[1]);
}
//echo $pageinfo[charset];
//exit;
curl_close ($ch);
//echo $store;
//remove javascript
$store = preg_replace(“/<!–(.*)/smUi”,”,$store); //remove link $store = preg_replace(“/]+>/smUi”,”,$store); //remove
$store = preg_replace(“//smUi”,”,$store);
//remove
<style </ $store = preg_replace(“/(.*)/smUi”,”,$store);
//remove 中文空格
$store = preg_replace(“//”,”,$store);
//remove 标点符号
//$store = preg_replace(“/[/~`!@#$%^&*()_/-+={}|/[/]//;’:”//?/,/.//]/”,”,$store);
//preg_match(“/(.*)/smUi”,$store, $matches);
//$head = $matches[1];
//echo $head. “/n”;
//charset
if($pageinfo[charset] == ” ) {
preg_match(‘@]*>@i’,$store,$matches);
$pageinfo[charset] = trim($matches[1]);
}
//desctiption
preg_match(‘@]+)/*>@i’,$store,$matches);
//print_r($matches);
$desc = trim($matches[1]);
$pageinfo[description] = str_replace(“/””, ”,$desc);
preg_match(‘@]+)/*>@i’,$store,$matches);
//print_r($matches);
$keywords = trim($matches[1]);
$pageinfo[keywords] = str_replace(“/””, ”,$keywords);
preg_match(“/
$pageinfo[title] = trim($matches[1]);
preg_match(“/(.*)/smUi”,$store, $matches);
$pageinfo[body] = addslashes( replaceHtmlAndJs($matches[1]) ) ;
$pageinfo[‘all’] = addslashes( replaceHtmlAndJs($store) ) ;
//echo “charset = ” . $pageinfo[charset] . “/n”;
//print_r($pageinfo);
//exit;
return $pageinfo;
}
/**
* 去掉所有的HTML标记和JavaScript标记
*/
function replaceHtmlAndJs($document)
{
$document = trim($document);
if (strlen($document) <= 0) { return $document; } $search = array ( "]*?>.*?
// –>’si”, // 去掉 javascript
“‘<[///!]*?[^]*?>’si”,// 去掉 HTML 标记
“‘[/r/n/s+]”,// 去掉空白字符
“‘&(/w+);’i” // 替换 HTML 实体
); // 作为 PHP 代码运行
$replace = array ( “”, “”, “”, “” );
return @preg_replace ($search, $replace, $document);
}
使用例子
代码如下:
$a = getPageContent();
print_r($a);