本节内容:
php采集器代码
例子:
<?php
/**
* 采集器代码一例
* by www.
*/
$url = "http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml";// 图书地址
$ver = "old"; //新旧版本
$r = file_get_contents($url); //用file_get_contents将网址打开并读取所打开的页面的内容
preg_match("/<meta name=\"description\" content=\"(.*?)\">/is",$r,$booktitle);//匹配此页面的标题
$bookname = $booktitle[1];//取第二层数组
$preg = '/<li><a href=(.*).shtml target=_blank ;
preg_match_all($preg, $r, $zj); //将此页面的章节连接匹配出来
$bookzj = count($zj[1]);// 计算章节标题数量
if ($ver=="new"){
$content_start = "<!--正文内容开始-->";
$content_end = "<!--正文内容结束-->";
}
if ($ver=="old"){
$content_start = "<\/table><!--NEWSZW_HZH_END-->";
$content_end = "<br>";
}
header("Content-Type:text/html;charset=gb2312");
writer($bookname." 共".$bookzj."节\r\n帅哥刘并于".date("D M j G:i:s T Y")."为了毕业而设计小说整理收集\r\n", "./ailaopo/".$bookname.".txt","w+");
for ($i=0;$i<$bookzj;$i++) {
//echo "http://book.sina.com.cn".$zj[1][$i]".shtml";die();
//用file_get_contents将章节连接打开并读取所打开的页面的内容
$str = file_get_contents("http://book.sina.com.cn".$zj[1][$i].".shtml");
preg_match("/(<title>)(.*?)(<\/title>)/is",$str,$title);//匹配此连接页面的标题
$title = str_replace()("_读书频道_新浪网","",$title[2]);//把$title[2]里面有_读书频道_新浪网的换成空
preg_match("/(".$content_start.")(.*?)(".$content_end.")/is",$str,$content);//匹配此连接页面的内容
$content = preg_replace("/<(.*?)>/s","",str_replace("</p>","\r\n",$content[2]));//用str_replace把$content[2]里有</p> 的换成\r\n
print_r($content);
exit;
//把第".($i+1)."节和标题与内容连接在一起放在变量
$result = " \r\n第".($i+1)."节--------".$title."_汪老师就是帅 --------- \r\n".$content;
writer($result, "./ailaopo/".$bookname.".txt","a+");//调用函数把$result
echo "小说".$bookname."共".$bookzj."节,现在整理到第".$i."节 _".$title."<br>";
}
echo "小说".$bookname."共".$bookzj."节 已全部整理完成!";
function writer($content,$url,$mode)//定义函数名 writer 参数$content,$url,$mode
{
$fp = fopen($url, $mode);//打开文件$url
fwrite($fp, $content);//把$content放入到$fp
fclose($fp); //关闭$fp
}
?>
您可能感兴趣的文章:
phpQuery采集网页的实例分享
php采集远程图片的思路与实现代码
php采集程序代码(入门)
php写的文章采集URL补全函数(FormatUrl)
一个php文本采集类
php 抓取蜘蛛爬虫痕迹的代码分享
本节内容:
中文首字母转拼音
例子:
/**
* 将中文的首字母转为拼音
* site: www.
*/
function getfirstchar($s0) {
$fchar = ord(substr($s0, 0, 1));
if (($fchar >= ord("a") and $fchar <= ord("z"))or($fchar >= ord("A") and $fchar <= ord("Z"))) return strtoupper()(chr($fchar));
$s = iconv("UTF-8", "gb2312", $s0);
$asc = ord($s{0}) * 256 + ord($s{1})-65536;
if ($asc >= -20319 and $asc <= -20284)return "A";
if ($asc >= -20283 and $asc <= -19776)return "B";
if ($asc >= -19775 and $asc <= -19219)return "C";
if ($asc >= -19218 and $asc <= -18711)return "D";
if ($asc >= -18710 and $asc <= -18527)return "E";
if ($asc >= -18526 and $asc <= -18240)return "F";
if ($asc >= -18239 and $asc <= -17923)return "G";
if ($asc >= -17922 and $asc <= -17418)return "I";
if ($asc >= -17417 and $asc <= -16475)return "J";
if ($asc >= -16474 and $asc <= -16213)return "K";
if ($asc >= -16212 and $asc <= -15641)return "L";
if ($asc >= -15640 and $asc <= -15166)return "M";
if ($asc >= -15165 and $asc <= -14923)return "N";
if ($asc >= -14922 and $asc <= -14915)return "O";
if ($asc >= -14914 and $asc <= -14631)return "P";
if ($asc >= -14630 and $asc <= -14150)return "Q";
if ($asc >= -14149 and $asc <= -14091)return "R";
if ($asc >= -14090 and $asc <= -13319)return "S";
if ($asc >= -13318 and $asc <= -12839)return "T";
if ($asc >= -12838 and $asc <= -12557)return "W";
if ($asc >= -12556 and $asc <= -11848)return "X";
if ($asc >= -11847 and $asc <= -11056)return "Y";
if ($asc >= -11055 and $asc <= -10247)return "Z";
return null;
}
您可能感兴趣的文章:
C# 汉字转拼音(全拼、首字母)的例子
python获取汉字拼音的首字母的实例代码
php获取汉字中首字母(gb2312编码)的实现代码
C#获取字符串中汉字拼音首字母的代码一例
php取汉字首字母的代码
php批量获取首字母(汉字、数字、英文)的代码
sql server获取汉字首字母的函数(第一版)
sql server获取汉字首字母的函数(第二版)
sql server获取汉字首字母的函数(第三版)
sql server获取汉字首字母的函数(第四版)
本节内容:
PHP验证生日
例子:
<?php
/**
* 验证生日的函数代码
* by www.
*/
function pc_checkbirthdate($month, $day, $year) {
$min_age = 18; // 过18岁
$max_age = 100; // 超过122岁
// 验证是不是合法时间,不会出现2月30号类似错误
if (! checkdate ( $month, $day, $year )) {
return false;
}
// 取得当前 年 月 日
list ( $this_year, $this_month, $this_day ) = explode() ( ',', date ( 'Y, m, d' ) );
$min_year = $this_year - $max_age;
$max_year = $this_year - $min_age;
print "合法时间应该大于:$min_year,$this_month,$this_day\n<br/>";
print "合法时间应该小于:$max_year,$this_month,$this_day\n<br/>";
print "您输入的时间是:$year,$month,$day\n<br/>";
if (($year > $min_year) && ($year < $max_year)) { // 先判断年,如果在(最小年,最大年)之间,返回true
return true;
} elseif (($year == $max_year) && (($month < $this_month) || (($month == $this_month && ($day < $this_day))))) {//年相等的在判断月,月相等在判断日
return true; // www.
} elseif (($year == $min_year) && (($month > $this_month) || (($month == $this_month && ($day > $this_day))))) {
return true;
} else {
return false;
}
}
if (pc_checkbirthdate ( 4, 29, 1995 )) {
print "You may use this web site.";
} else {
print "please input the correct birthdate.";
exit ();
}
?>