当前位置: 编程技术>php
本页文章导读:
▪php采集程序代码(入门) 完整代码如下。
<?php
/**
* php采集程序
* by http://www.
*/
function fetch_urlpage_contents($url){
$c=file_get_contents($url);
return $c;
}
//获取匹配内容
function fetch_match_contents($begin,$end,$c)
{
$begin=change_.........
▪php提取网页超链接 邮箱及其它内容的实现代码 完整代码如下。
<?php
/**
* 提取网页超链接 邮箱等内容
* by http://www.
*/
function fetch_urlpage_contents($url){
$c=file_get_contents($url);
return $c;
}
//获取匹配内容
function fetch_match_contents($begin,$end,.........
▪php数据库操作类(实现表增删改查、取行数、查询多条数据等) php数据库类完整代码与示例如下。
1、代码
<?php
/**
*
* 数据操作类
* @author Xiaoqiang
* @link http://www.
*/
class Db {
var $links;
// 构造函数,初始化数据库(主机,用户名,密码,数据库名)
fun.........
[1]php采集程序代码(入门)
来源: 互联网 发布时间: 2013-12-24
完整代码如下。
<?php /** * php采集程序 * by http://www. */ function fetch_urlpage_contents($url){ $c=file_get_contents($url); return $c; } //获取匹配内容 function fetch_match_contents($begin,$end,$c) { $begin=change_match_string($begin); $end=change_match_string($end); $p = "{$begin}(.*){$end}"; if(eregi($p,$c,$rs)) { return $rs[1];} else { return "";} }//转义正则表达式字符串 function change_match_string($str){ //注意,以下只是简单转义 //$old=array("/","$"); //$new=array("\/","\$"); $str=str_replace()($old,$new,$str); return $str; } //采集网页 function pick($url,$ft,$th) { $c=fetch_urlpage_contents($url); foreach($ft as $key => $value) { $rs[$key]=fetch_match_contents($value["begin"],$value["end"],$c); if(is_array($th[$key])) { foreach($th[$key] as $old => $new) { $rs[$key]=str_replace($old,$new,$rs[$key]); } } } return $rs; } $url="http://www.yourdomain.com"; //要采集的地址 $ft["title"]["begin"]="<title>"; //截取的开始点 $ft["title"]["end"]="</title>"; //截取的结束点 $th["title"]["站点"]=""; //截取部分的替换 $ft["body"]["begin"]="<body>"; //截取的开始点 $ft["body"]["end"]="</body>"; //截取的结束点 $th["body"]["网站"]="www."; //截取部分的替换 $rs=pick($url,$ft,$th); //开始采集 echo $rs["title"]; echo $rs["body"]; //输出 ?>
[2]php提取网页超链接 邮箱及其它内容的实现代码
来源: 互联网 发布时间: 2013-12-24
完整代码如下。
<?php /** * 提取网页超链接 邮箱等内容 * by http://www. */ function fetch_urlpage_contents($url){ $c=file_get_contents($url); return $c; } //获取匹配内容 function fetch_match_contents($begin,$end,$c) { $begin=change_match_string($begin); $end=change_match_string($end); $p = "#{$begin}(.*){$end}#iU";//i表示忽略大小写,U禁止贪婪匹配 if(preg_match_all($p,$c,$rs)) { return $rs;} else { return "";} }//转义正则表达式字符串 function change_match_string($str){ //注意,以下只是简单转义 $old=array("/","$",'?'); $new=array("\/","\$",'\?'); $str=str_replace()($old,$new,$str); return $str; } //采集网页 function pick($url,$ft,$th) { $c=fetch_urlpage_contents($url); foreach($ft as $key => $value) { $rs[$key]=fetch_match_contents($value["begin"],$value["end"],$c); if(is_array($th[$key])) { foreach($th[$key] as $old => $new) { $rs[$key]=str_replace($old,$new,$rs[$key]); } } } return $rs; } $url="http://www.yourdomain.com"; //要采集的地址 $ft["a"]["begin"]='<a'; //截取的开始点<br /> $ft["a"]["end"]='>'; //截取的结束点 $rs=pick($url,$ft,$th); //开始采集 print_r($rs["a"]); ?>
[3]php数据库操作类(实现表增删改查、取行数、查询多条数据等)
来源: 互联网 发布时间: 2013-12-24
php数据库类完整代码与示例如下。
1、代码
<?php /** * * 数据操作类 * @author Xiaoqiang * @link http://www. */ class Db { var $links; // 构造函数,初始化数据库(主机,用户名,密码,数据库名) function __construct() { $this->links = mysql_connect()(DB_HOST, DB_USER, DB_PWD); if(DEBUG){ mysql_select_db(DB_NAME) or die('ERROR:'.mysql_error()); } else{ mysql_select_db(DB_NAME); } $char_sql = "SET NAMES '" . CHARSET . "'"; $this->query($char_sql); } /** * ****************** 操作 ****************** */ /** * 增删改查操作方法 * 输入sql语句 * 返回布尔值或结果集$row */ function query($sql) { if(DEBUG){ $render = mysql_query()($sql) or die('query ERROR:'.mysql_error()."<br>sql语句出错:" . $sql); return $render; } else{ return mysql_query($sql); } } /** * 计算行数方法 * 输入 * 结果数组 */ function count($table,$condition='1') { $sql = "select count(*) from `".DB_PREFIX.$table."` where $condition"; $result = $this->select($sql); return $result[0]['count(*)']; } /** * 原始的sql语句查操作方法 * 输入sql语句 * 结果数组 */ function select($sql) { $row = $this->query($sql); $results = array(); while($arr = $this->fetch($row)){ $results[] = $arr; } //$this->free_result($row); return $results; } /** * 检查某字段是否存在某值 * @param 输入表名.字段,值 * @return id 或者 false **/ function check_exists($table,$val){ $render = false; $tab = explode()('.',$table); if($tab['1'] && $tab['1']!='id'){ $fields = $tab['1']; $table = "{$tab[0]}.id,{$fields}"; } else{ $fields = 'id'; $table = $tab[0].".id"; } $condition = "`$fields` = '{$val}'"; $detail = $this->read($table,$condition); if($detail[$fields]){ $render = $detail['id']; } return $render; } /** * 查询多条数据方法 * 输入表名.字段,字段;查询条件,条数 * 如果条件是数组,则进入高级搜索模式 * 返回结果数组 */ function readall($table,$condition='1',$limit='') { $tab = explode('.',$table); $table = $tab['0']; if($tab['1']){ $fields = $tab['1']; $fields_array =explode(',',$fields); $fields = ''; foreach( $fields_array as $one){ $fields .= "`$one`,"; } $fields = rtrim($fields,','); } else{ $fields = '*'; } if(is_array($condition)){ $condition = $this->parse_condition($condition); } $sql = "select $fields from `".DB_PREFIX.$table."` where $condition"; if($limit)$sql .= " limit $limit"; return $this->select($sql); } /** * 查询单条数据方法 * 输入表名.字段,字段;查询条件 * 返回结果数组 */ function read($table,$condition='1') { $render = $this ->readall($table,$condition,1); return $render[0]; } /** * 修改数据方法 * 输入表名,插入数据array('字段'=>'值'),条件 * 返回布尔值 */ function update($table,$data,$condition ) { $set = ''; foreach( $data as $key=>$val){ $set .= "`$key` = '".$val."',"; } $set = rtrim($set,','); if(is_array($condition)){ $condition = $this->parse_condition($condition); } $sql = "update `".DB_PREFIX.$table."` set $set where $condition"; return $this->query($sql); } /** * 插入数据方法 * 输入表名,数据array('字段'=>'值') * 返回布尔 */ function insert($table,$data) { $fields = array(); $values = array(); foreach( $data as $key=> $val){ if(is_array($val)){ $_values = array(); $_fields = array(); foreach( $val as $k=> $v){ $_fields[]= "`$k`"; $_values[]= "'{$v}'"; } $fields = $_fields; $values[] = '('.implode(',',$_values).')'; } else{ $fields[] = "`$key`"; $values[] = "'{$val}'"; } } $fields = implode(',',$fields); $values = implode(',',$values); $sql = "insert into `".DB_PREFIX.$table."` ($fields) values($values)"; return $this->query($sql); } /** * 删除数据方法 * 输入表名,条件 * 返回bool */ function delete($table,$condition) { if(empty($condition)){ die('条件不能为空'); } if(is_array($condition)){ $condition = $this->parse_condition($condition); } $sql = "delete from `".DB_PREFIX.$table."` where $condition"; return $this->query($sql); } /** * 解析条件的函数 * @param 条件数组 * <code> $arr[] = "`id`==0"; $arr[] = "`id`==5"; $arr['id'] = "5"; $arr['or'][] = "`id`!=2"; $arr['or'][] = "`id`!=1"; $arr['or'][] = "`id`!=2"; $arr['groups'][]='id'; $arr['orders']['id']='asc'; $arr['orders']['td']='DESC'; * </code> * @return str **/ function parse_condition($condition){ $and = '1'; $or = '0'; $groups = array(); $orders = array(); foreach( $condition as $key=>$val){ if(is_numeric($key)){ $and .= " and $val"; } elseif(strtolower()($key)== 'or'){ //处理or条件 if(is_array($val)){ foreach( $val as $k=>$v){ if(is_numeric($k)){ $or .= " or {$v}"; } elseif(is_array($v)){ $v = implode(',',$v); $or .= " or `$k` in ($v)"; }else{ $or .= " or `$k='{$v}'"; } } }else{ $or .= " or $val'"; } } elseif(strtolower($key)== 'groups'){ //处理group by foreach( $val as $k=>$v){ $groups[] = $v; } }elseif(strtolower($key)== 'orders'){ //处理order by foreach( $val as $k=>$v){ $orders[] = $k.' '.$v; } }else{ if(is_array($val)){ $val = implode(',',$val); $and .= " and `$key` in ($val)"; }else{ $and .= " and `$key`='{$val}'"; } } } if($and!='1' && $or!='0')$where = $and.' or '.$or; elseif($and!='1') $where = $and; elseif($or!='0') $where = $or; if($groups)$where .= " group by ".implode(',',$groups); if($orders)$where .= " order by ".implode(',',$orders); $where = str_replace()('1 and','',str_replace('0 or','',$where)); return $where; } /** * 锁表方法 * 输入表名,锁定类型,r or w 写锁要放在读锁前面 * 返回bool */ function lock($table,$type='r') { if($type=='r'){ $type = 'READ'; } else{ $type = 'WRITE'; } $sql = "lock table `".DB_PREFIX.$table."` $type"; return $this->query($sql); } /** * 解锁表方法 * * 返回bool */ function unlock( ) { $sql = "unlock tables"; return $this->query($sql); } /** * 结果集放入数组方法 * 返回数组,指针下移 */ function fetch($row) { return mysql_fetch_array($row,MYSQL_ASSOC); } /** * 计算结果集行数方法 * 输入$row * 返回行数 */ function num_rows($row) { return mysql_num_rows($row); } /** * 计算结果集列数方法 * 输入$row * 返回列数 */ function num_fields($row) { return mysql_num_fields($row); } /** * 释放result结果集内存 * 返回布尔值 */ function free_result($row) { return mysql_free_result($row); } /** * 查看指定表的字段名 * 输入表名 * 返回全部字段名数组 */ function list_fields($table) { $fields = mysql_list_fields(DB_NAME, DB_PREFIX.$table, $this->links); $columns = mysql_num_fields($fields); for ($i = 0; $i < $columns; $i++) { $row[$i] = mysql_field_name($fields, $i); } return $row; } /** * 查看数据库版本方法 */ function version() { return mysql_get_server_info(); } /** * 插入时查看插入ID */ function insert_id() { return mysql_insert_id(); } /** * 分页方法 */ function page($table,$condition='1',$pagesize=20,$id='page') { $page = $_GET[$id]; if(!$page)$page= 0 ; elseif(!is_numeric($page))die('分页出错'); //查找结果集 $p = $page * $pagesize; $limit = $p.",".$pagesize; $results = $this->readall($table,$condition,$limit); //取得结果集行数 $num = $this->count($table,$condition); //定义最后页 $maxpage if ($num % $pagesize) { $maxpage = (int) ($num / $pagesize +1); } else $maxpage = $num / $pagesize; if(STATICS){ //从服务器端取得url信息 if($_GET[$id] === null){ $_SERVER["REQUEST_URI"] = str_replace('index.php','',$_SERVER["REQUEST_URI"]); $_SESSION[$id] = str_replace('.html','',$_SERVER["REQUEST_URI"],$count); $_SESSION[$id] = $count?$_SESSION[$id] :$_SESSION[$id].'index'; if(!sizeof($_GET))$_SESSION[$id].="-htm"; } $str = "<div -0.html>First</a> "; if($page)$str .= "<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page-1).".html>Previous</a> "; if($page-3>=0)$str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page-3).".html>".($page-2)."</a> "; if($page-2>=0)$str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page-2).".html>".($page-1)."</a> "; if($page-1>=0)$str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page-1).".html>".$page."</a> "; if($page < $maxpage)$str .=($page+1)." "; if($page+1 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page+1).".html>".($page+2)."</a> "; if($page+2 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page+2).".html>".($page+3)."</a> "; if($page+3 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page+3).".html>".($page+4)."</a> "; if($page+1 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($page+1).".html>Next</a> "; if(!$maxpage)$maxpage=1; $str .="<a href=/blog_article/$_SESSION[$id]-/index.html".$id."-".($maxpage-1).".html>Last</a> <a href=javascript:;> ".($page+1)."/".$maxpage."Total</a> </div>"; } else{ //从服务器端取得url信息 if($_GET[$id] === null){ $_SESSION[$id] = $_SERVER["REQUEST_URI"]; if(!sizeof($_GET))$_SESSION[$id].="?p=1"; } $str = "<div =0>First</a> "; if($page)$str .= "<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page-1).">Previous</a> "; if($page-3>=0)$str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page-3).">".($page-2)."</a> "; if($page-2>=0)$str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page-2).">".($page-1)."</a> "; if($page-1>=0)$str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page-1).">".$page."</a> "; if($page < $maxpage)$str .=($page+1)." "; if($page+1 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page+1).">".($page+2)."</a> "; if($page+2 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page+2).">".($page+3)."</a> "; if($page+3 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page+3).">".($page+4)."</a> "; if($page+1 < $maxpage)$str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($page+1).">Next</a> "; if(!$maxpage)$maxpage=1; $str .="<a href=/blog_article/$_SESSION[$id]&/index.html".$id."=".($maxpage-1).">Last</a> <a href=javascript:;> ".($page+1)."/".$maxpage."Total</a> </div>"; } return array($results,$str); } /** * 左连接多表查询 * @param * @return **/ function leftjoin($left,$right,$on,$condition,$limit=1){ $left = explode('.',$left); $right = explode('.',$right); $left['0'] = "`".DB_PREFIX.$left['0']."`"; $right['0'] = "`".DB_PREFIX.$right['0']."`"; if($left['1'] || $right['1']){ $fields = ''; if(!empty($left['1'])){ $_field = explode(',',$left['1']); foreach( $_field as $one){ $fields.=$left['0'].'.`'.$one."`,"; } } if(!empty($right['1'])){ $_field = explode(',',$right['1']); foreach( $_field as $one){ $fields.=$right['0'].".`".$one."`,"; } } $fields = rtrim($fields,','); } else{ $fields = '*'; } $on = str_replace('\2',$right[0],str_replace('\1',$left[0],$on)); $condition = str_replace('\2',$right[0],str_replace('\1',$left[0],$condition)); $sql = "SELECT {$fields} FROM {$left[0]} LEFT JOIN {$right[0]} ON ( {$on} ) WHERE ( {$condition} ) LIMIT {$limit} "; $query = $this->query($sql); $field_num = mysql_num_fields($query); while($arr = mysql_fetch_array($query,MYSQL_NUM)){ $_arr = array(); for( $i=0 ; $i<$field_num ; $i++ ){ $table = str_replace(DB_PREFIX,'',mysql_field_table($query, $i)); $field = mysql_field_name($query, $i); $_arr[$table.'.'.$field] = $arr[$i]; } $array[]=$_arr; } $array=$limit==1?$arrat[0]:$array; return $array; } /** * 用于创建一个表结构 * @param 表名,结构 array(字段,格式,注释) 表注释 索引array(字段,字段) 全文搜索(字段,字段) * @return 打印 **/ function createTable($tablename,$data,$comment='',$key='',$fulltext=''){ $_key=''; $_type = ''; $_fulltext = ''; $tablename = DB_PREFIX.$tablename; $sql = "CREATE TABLE IF NOT EXISTS `$tablename` ( `id` int(10) unsigned NOT NULL auto_increment COMMENT 'ID', "; foreach( $data as $one){ switch($one[1]){ case '': $_type = 'varchar(255)'; break; case 'tinyint': $_type = 'tinyint(1)'; break; case 'time': $_type = 'int(10)'; break; default: if(strpos($one[1],'.')!==false){ $_type = explode('.',$one[1]); $_type = $_type[0].'('.$_type[1].')'; } else{ $_type = $one[1]; } break; } $sql.="`{$one[0]}` $_type NOT NULL COMMENT '{$one[2]}', "; } if(!empty($key)){ foreach( $key as $one){ $_key.="KEY `$one` (`$one`), "; } } if(!empty($fulltext)){ foreach( $fulltext as $one){ $_key.="FULLTEXT `$one` (`$one`), "; } } $sql.= $_key.$_fulltext."PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=".CHARSET." COMMENT '$comment'; "; if(!$_GET[sure]){ if(empty($_GET)){ $url = '?sure=1'; } else{ $url = $_SERVER["REQUEST_URI"].'&sure=1'; } echo "即将执行以下建表操作:<br><pre>$sql<a href=/blog_article/$url>确定</a></pre>/index.html"; } elseif($_GET[sure] && $this->query($sql)){ echo "完成操作"; } else{ echo "操作失败:<br>><pre>$sql</pre>"; } exit; } }; ?>
调用示例:
<?php //实例 define("DB_HOST", 'localhost'); define("DB_USER", 'root'); define("DB_PWD", ''); define("DB_NAME", "test"); define("DB_PREFIX", "test_"); define('CHARSET', 'gbk'); // 编码 define("GEBUG", 1); //建表 $Db=new Db(); $data[] = array('title','','标题'); $data[] = array('open','tinyint.1','是否公开'); $data[] = array('keyword','','关键词'); $data[] = array('content','text','内容'); $data[] = array('created','time','时间'); //$Db->createTable('article',$data,'文章表'); //增删改查 $data['title']='t'; $data['keyword']='k'; $Db->insert('article',$data); $num = $Db->read('article.id','1 order by id desc'); $data['created'] = mktime()+$num['id']; $Db->update('article',$data,"`id` =2"); $Db->delete('article',"`id` =3"); ?>
最新技术文章: