php记录搜索引擎蜘蛛爬行记录代码
php教程记录搜索引擎蜘蛛爬行记录代码
<center>
<form action="setup.php" method="post">
<table align="center">
<tr><td>服务器:</td><td><input value="localhost" name="server" /></td>
</tr>
<tr>
<td>用户名:</td><td><input value="数据库教程用户名" name="sqluser" /></td>
</tr>
<tr>
<td>密 码:</td><td><input value="数据库密码" name="sqlpass" /></td>
</tr>
<tr>
<td>库名称:</td><td><input value="数据库名称" name="sqldb" /></td>
</tr>
<tr>
<td>管理员账号:</td><td><input value="admin" name="adminname" /></td>
</tr>
<tr>
<td>管理员密码:</td><td><input value="admin" name="adminpass" /></td>
</tr><tr>
<td></td><td ><input type="submit" value="开始安装" /></td>
</tr>
</table>
</form>
</center>
setup.php文件
<?php
@$server = $_post['server'];
@$sqluser = $_post['sqluser'];
@$sqlpass = $_post['sqlpass'];
@$sqldb = $_post['sqldb'];
@$adminname=$_post['adminname'];
@$adminpass=md5($_post['adminpass']);
@$conn = mysql教程_connect($server, $sqluser, $sqlpass) or die("<script>alert('数据库无法链接,请检查用户名和密码是否有误');history.back();</script>");
$db = mysql_select_db($sqldb) or die("<script>alert('数据库无法找到,请检查数据库名称是否填写有误!');history.back();</script>");
$sql1="set foreign_key_checks=0";
$sql2="drop table if exists `robots`";
$sql3="create table `robots` (
`id` int(11) not null auto_increment,
`robotsname` varchar(200) default null,
`robotsip` varchar(200) default null,
`riqi` date default null,
`shijian` time default null,
`robotspage` varchar(255) default null,
primary key (`id`)
) engine=innodb default charset=gbk";$sql1ok=mysql_query($sql1,$conn);
$sql2ok=mysql_query($sql2,$conn);
$sql3ok=mysql_query($sql3,$conn);
if (!$sql1ok or !$sql2ok or !$sql3ok) {
echo "<script>alert('您的mysql存在严重性故障,程序无法继续安装,请联系程序作者!');location.href='http://www.axphp.com';</script>";
} else
{
$conntext = file_get_contents("conn.setup");
$conntext = str_replace("server", $server, $conntext);
$conntext = str_replace("user", $sqluser, $conntext);
$conntext = str_replace("pass", $sqlpass, $conntext);
$conntext = str_replace("mysqldb", $sqldb, $conntext);
$conntext = str_replace("adminzh",$adminname,$conntext);
$conntext = str_replace("adminmmpas",$adminpass,$conntext);
file_put_contents("../config.php", $conntext);
rename("setup.php","setup.lock");
echo "<script>alert('恭喜,安装成功!');location.href='../index.html';</script>";
}
?>
zz.php文件
<?php
include_once 'config.php';
@$ax_ym=$_server['request_uri'];
@$ax_ss=$_server['http_user_agent'];
@$ax_url=$_server['http_referer'];
@$ax_ip=$_server['remote_addr'];
@$ax_date=date("y-m-d");
@$ax_time=date("h:i:s");
$baidu=stristr($ax_ss,"baiduspider");
$google=stristr($ax_ss,"googlebot");
$soso=stristr($ax_ss,"sosospider");
$youdao=stristr($ax_ss,"youdaobot");
$bing=stristr($ax_ss,"bingbot");
$sogou=stristr($ax_ss,"sogou web spider");
$yahoo=stristr($ax_ss,"yahoo! slurp");
if($baidu)
{
$ax_ss="baidu";
}
elseif($google)
{
$ax_ss="google";
}
elseif($soso)
{
$ax_ss="soso";
}
elseif($youdao)
{
$ax_ss="youdao";
}
elseif($bing)
{
$ax_ss="bing";
}
elseif($sogou)
{
$ax_ss="sogou";
}
elseif($yahoo)
{
$ax_ss="yahoo";
}
else
{
$ax_ss=null;
}
if($baidu or $google or $soso or $youdao or $bing or $sogou or $yahoo)
{
$zzsql="insert into robots (robotsname,robotspage,robotsip,riqi,shijian) values ('$ax_ss','$ax_ym','$ax_ip','$ax_date','$ax_time')";
$exeok=mysql_query($zzsql,$conn);
}
?>
在要抓蜘蛛页面加上
include('zz.php')
或js调用
<script src="zz.php"></script>
源码下载
http://down.111cn.net/down/tool/o/2011/0311/22881.html
1.pdo简介
pdo(php教程 data object) 是php 5 中加入的东西,是php 5新加入的一个重大功能,因为在php 5以前的php4/php3都是一堆的数据库教程扩展来跟各个数据库的连接和处理,什么 php_mysql教程.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等。
php6中也将默认使用pdo的方式连接,mysql扩展将被作为辅助
2.pdo配置
php.ini中,去掉"extension=php_pdo.dll"前面的";"号,若要连接数据库,还需要去掉与pdo相关的数据库扩展前面的";"号,然后重启apache服务器即可。
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_firebird.dll
......
3.pdo连接mysql数据库
new pdo("mysql:host=localhost;dbname=db_demo","root","");
默认不是长连接,若要使用数据库长连接,需要在最后加如下参数:
new pdo("mysql:host=localhost;dbname=db_demo","root","","array(pdo::attr_persistent => true) ");
4.pdo常用方法及其应用
pdo::query() 主要是用于有记录结果返回的操作,特别是select操作
pdo::exec() 主要是针对没有结果集合返回的操作,如insert、update等操作
pdo::lastinsertid() 返回上次插入操作,主键列类型是自增的最后的自增id
pdostatement::fetch() 是用来获取一条记录
pdostatement::fetchall() 是获取所有记录集到一个中
5.pdo操作mysql数据库实例
复制代码 代码如下:
<?php
$pdo = new pdo("mysql:host=localhost;dbname=db_demo","root","");
if($pdo -> exec("insert into db_demo(name,content) values('title','content')")){
echo "插入成功!";
echo $pdo -> lastinsertid();
}
?>
复制代码 代码如下:
<?php
$pdo = new pdo("mysql:host=localhost;dbname=db_demo","root","");
$rs = $pdo -> query("select * from test");
while($row = $rs -> fetch()){
print_r($row);
}
?>
网上最常出现的解决中文乱码显示的代码是:
第一种:pdo::__construct($dsn, $user, $pass, array
(pdo::mysql_attr_init_command => "set names'utf8';"));
我试过用第一种方法,可结果是,name字段只显示一个‘c'字符。之后的本该显示中文的地方却是空白。
结果是这样的:如图1示
我是只要解决的:直接将utf8替换成了gbk,就可以了,即:
pdo::__construct($dsn, $user, $pass, array(pdo::mysql_attr_init_command => "set
names'gbk';"));
效果图2如下:
第二种:pdo::__construct($dsn, $user, $pass);
pdo::exec("set names 'utf8';");
第二种我也在我的环境里测试过,显示效果如图1所示,碰到这种情况,把utf8替换成gbk,就能显
示了。另外,这里的pdo::在使用的时候用$pdo->代替,当然,这个是个变量,变量名称可以自己定义。
第三种
:$pdo->query('set names utf8;');
至于第三种呢,看了上面两种,应该也知道要吧utf8替换成gbk,也能正确显示了。
这几种我都测试过了。都行。哈哈。另外,我在这里还介绍一种解决中文乱码的一种方法,不过大同小异,
基本和第三种没什么却别,不通的是,这种方法,没用query而是用exec,代码如下:
$pdo->exec("set character set gbk");
<?php
/*
常用数据库操作,如:增删改查,获取单条记录、多条记录,返回最新一条插入记录id,返回操作记录行数等
*/
/*
参数说明
int $debug 是否开启调试,开启则输出sql语句
int $getcount 是否记数,返回值为行数
int $getrow 是否返回值单条记录
string $table 数据库表
string $fields 需要查询的数据库字段,允许为空,默认为查找全部
string $sqlwhere 查询条件,允许为空
string $orderby 排序,允许为空,默认为id倒序
*/
function hrselect($debug, $getcount, $getrow, $table, $fields="*", $sqlwhere="", $orderby="id desc"){
global $pdo;
if($debug){
if($getcount){
echo "select count(*) from $table where 1=1 $sqlwhere order by $orderby";
}else{
echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
}
exit;
}else{
if($getcount){
$rs = $pdo->query("select count(*) from $table where 1=1 $sqlwhere order by $orderby");
return $rs->fetchcolumn();
}elseif($getrow){
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
return $rs->fetch();
}else{
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
return $rs->fetchall();
}
}
}
/*
参数说明
int $debug 是否开启调试,开启则输出sql语句
int $execrow 是否开启返回执行条目数
int $lastinsertid 是否开启返回最后一条插入记录id
string $table 数据库表
string $fields 需要插入数据库的字段
string $values 需要插入数据库的信息,必须与$fields一一对应
*/
function hrinsert($debug, $execrow, $lastinsertid, $table, $fields, $values){
global $pdo;
if($debug){
echo "insert into $table ($fields) values ($values)";
exit;
}elseif($execrow){
return $pdo->exec("insert into $table ($fields) values ($values)");
}elseif($lastinsertid){
return $pdo->lastinsertid("insert into $table ($fields) values ($values)");
}else{
$pdo->query("insert into $table ($fields) values ($values)");
}
}
/*
参数说明
int $debug 是否开启调试,开启则输出sql语句
int $execrow 是否开启执行并返回条目数
string $table 数据库表
string $set 需要更新的字段及内容,格式:a='abc',b=2,c='2010-10-10 10:10:10'
string $sqlwhere 修改条件,允许为空
*/
function hrupdate($debug, $execrow, $table, $set, $sqlwhere=""){
global $pdo;
if($debug){
echo "update $table set $set where 1=1 $sqlwhere";
exit;
}elseif($execrow){
return $pdo->exec("update $table set $set where 1=1 $sqlwhere");
}else{
$pdo->query("update $table set $set where 1=1 $sqlwhere");
}
}
/*
参数说明
int $debug 是否开启调试,开启则输出sql语句
int $execrow 是否开启返回执行条目数
string $table 数据库表
string $sqlwhere 删除条件,允许为空
*/
function hrdelete($debug, $execrow, $table, $sqlwhere=""){
global $pdo;
if($debug){
echo "delete from $table where 1=1 $sqlwhere";
exit;
}elseif($execrow){
return $pdo->exec("delete from $table where 1=1 $sqlwhere");
}else{
$pdo->query("delete from $table where 1=1 $sqlwhere");
}
}
?>
pdo的mysql教程数据库教程操作类
* dbconfig类负责配置数据库访问信息,包括:服务器地址、端口、数据库实例名、用户名、用户密码、字符集等。
* dbtemplate类集合了对数据库的访问操作,主要有以下几个操作:
1. queryrows : 返回多行记录
2. queryrow : 返回为单条记录
3. queryforint : 查询单字段,返回整数
4. queryforfloat : 查询单字段,返回浮点数(float)
5. queryfordouble : 查询单字段,返回浮点数(double)
6. queryforobject : 查询单字段,返回对象,实际类型有数据库决定
7. update : 执行一条更新语句. insert / upadate / delete
*/
class dbconfig {
private static $dbms = "mysql";
private static $host = '127.0.0.1';
private static $port = '3306';
private static $username = '';
private static $password = '';
private static $dbname = '';
private static $charset = 'utf-8';
private static $dsn;/**
*
* @return 返回pdo dsn配置
*/
public static function getdsn() {
if (!isset(self::$dsn)) {
self::$dsn = self::$dbms . ':host=' . self::$host . ';port=' .
self::$port . ';dbname=' . self::$dbname;
if (strlen(self::$charset) > 0) {
self::$dsn = self::$dsn . ';charset=' . self::$charset;
}
}
return self::$dsn;
}/**
* 设置mysql数据库服务器主机
* @param $host 主机的ip地址
*/
public static function sethost($host) {
if (isset($host) && strlen($host) > 0)
self::$host = trim($host);
}/**
* 设置mysql数据库服务器的端口
* @param $port 端口
*/
public static function setport($port) {
if (isset($port) && strlen($port) > 0)
self::$port = trim($port);
}/**
* 设置mysql数据库服务器的登陆用户名
* @param $username
*/
public static function setusername($username) {
if (isset($username) && strlen($username) > 0)
self::$username = $username;
}/**
* 设置mysql数据库服务器的登陆密码
* @param $password
*/
public static function setpassword($password) {
if (isset($password) && strlen($password) > 0)
self::$password = $password;
}/**
* 设置mysql数据库服务器的数据库实例名
* @param $dbname 数据库实例名
*/
public static function setdbname($dbname) {
if (isset($dbname) && strlen($dbname) > 0)
self::$dbname = $dbname;
}/**
* 设置数据库编码
* @param $charset
*/
public static function setcharset($charset) {
if (isset($charset) && strlen($charset) > 0)
self::$charset = $charset;
}}
/**
* 一个数据库操作工具类
*
* @author zhjiun@gmail.com
*/
class dbtemplate {/**
* 返回多行记录
* @param $sql
* @param $parameters
* @return 记录数据
*/
public function queryrows($sql, $parameters = null) {
return $this->exequery($sql, $parameters);
}/**
* 返回为单条记录
* @param $sql
* @param $parameters
* @return
*/
public function queryrow($sql, $parameters = null) {
$rs = $this->exequery($sql, $parameters);
if (count($rs) > 0) {
return $rs[0];
} else {
return null;
}
}/**
* 查询单字段,返回整数
* @param $sql
* @param $parameters
* @return
*/
public function queryforint($sql, $parameters = null) {
$rs = $this->exequery($sql, $parameters);
if (count($rs) > 0) {
return intval($rs[0][0]);
} else {
return null;
}
}/**
* 查询单字段,返回浮点数(float)
* @param $sql
* @param $parameters
* @return
*/
public function queryforfloat($sql, $parameters = null) {
$rs = $this->exequery($sql, $parameters);
if (count($rs) > 0) {
return floatval($rs[0][0]);
} else {
return null;
}
}/**
* 查询单字段,返回浮点数(double)
* @param $sql
* @param $parameters
* @return
*/
public function queryfordouble($sql, $parameters = null) {
$rs = $this->exequery($sql, $parameters);
if (count($rs) > 0) {
return doubleval($rs[0][0]);
} else {
return null;
}
}/**
* 查询单字段,返回对象,实际类型有数据库决定
* @param $sql
* @param $parameters
* @return
*/
public function queryforobject($sql, $parameters = null) {
$rs = $this->exequery($sql, $parameters);
if (count($rs) > 0) {
return $rs[0][0];
} else {
return null;
}
}/**
* 执行一条更新语句.insert / upadate / delete
* @param $sql
* @param $parameters
* @return 影响行数
*/
public function update($sql, $parameters = null) {
return $this->exeupdate($sql, $parameters);
}private function getconnection() {
$conn = new pdo(dbconfig::getdsn(), dbconfig::getusername(), dbconfig::getpassword());
$conn->setattribute(pdo::attr_case, pdo::case_upper);
return $conn;
}private function exequery($sql, $parameters = null) {
$conn = $this->getconnection();
$stmt = $conn->prepare($sql);
$stmt->execute($parameters);
$rs = $stmt->fetchall();
$stmt = null;
$conn = null;
return $rs;
}private function exeupdate($sql, $parameters = null) {
$conn = $this->getconnection();
$stmt = $conn->prepare($sql);
$stmt->execute($parameters);
$affectedrows = $stmt->rowcount();
$stmt = null;
$conn = null;
return $affectedrows;
}
}
/*
pdo始于php教程5,php6中将默认使用pdo。不同于以前版本中混乱的数据库操作方式,pdo统一了对数据库的访问方式,给编程带来了极大的便利性。本工具类就是基于pdo,模拟了java世界spring框架中的jdbctemplate操作类
*/
我们一般是获取表单提交的数据,如果下面我们利用checkbox[]来操作,下面看实例。
-->
<form id="form1" name="form1" method="post" action="">
1
<input type="checkbox" name="checkbox[]" id="checkbox" value="1" />
2
<input type="checkbox" name="checkbox[]" id="checkbox2" value="2" />
3
<input type="checkbox" name="checkbox[]" id="checkbox3" value="3" />
<input type="submit" name="button" id="button" value="提交" />
</form>
<?
if( $_post )
{
print_r( $_post );
//输也是以数据形式保存的,
/*
array
(
[checkbox] => array
(
[0] => 1
[1] => 2
[2] => 3
)
[button] => 提交
)
这样就好操作了,我们只要如下
*/
$array = $_post['checkbox'];
print_r( $array );
/*
得到内容如下
array
(
[0] => 1
[1] => 2
[2] => 3
)
其实1,2,3就是我们想要的内容,我们就可以利用sql的in来批量实现删除了。
*/
$ids = implode(',',$array );
$sql ="delete from 表名 where id in($ids ) ";
mysql教程_query($sql);
//这样就实现的数据的批量删除哦。
//本站原创转载注明来源http://www.111cn.net 否则必究!
}
php教程 mysql教程完整数据库教程连接类
*/
class mysql {
private $db_host; //数据库主机
private $db_user; //数据库用户名
private $db_pwd; //数据库用户名密码
private $db_database; //数据库名
private $conn; //数据库连接标识;
private $result; //执行query命令的结果资源标识
private $sql; //sql执行语句
private $row; //返回的条目数
private $coding; //数据库编码,gbk,utf8,gb2312
private $bulletin = true; //是否开启错误记录
private $show_error = false; //测试阶段,显示所有错误,具有安全隐患,默认关闭
private $is_error = false; //发现错误是否立即终止,默认true,建议不启用,因为当有问题时用户什么也看不到是很苦恼的/*构造函数*/
public function __construct($db_host, $db_user, $db_pwd, $db_database, $conn, $coding) {
$this->db_host = $db_host;
$this->db_user = $db_user;
$this->db_pwd = $db_pwd;
$this->db_database = $db_database;
$this->conn = $conn;
$this->coding = $coding;
$this->connect();
}/*数据库连接*/
public function connect() {
if ($this->conn == "pconn") {
//永久链接
$this->conn = mysql_pconnect($this->db_host, $this->db_user, $this->db_pwd);
} else {
//即使链接
$this->conn = mysql_connect($this->db_host, $this->db_user, $this->db_pwd);
}if (!mysql_select_db($this->db_database, $this->conn)) {
if ($this->show_error) {
$this->show_error("数据库不可用:", $this->db_database);
}
}
mysql_query("set names $this->coding");
}/*数据库执行语句,可执行查询添加修改删除等任何sql语句*/
public function query($sql) {
if ($sql == "") {
$this->show_error("sql语句错误:", "sql查询语句为空");
}
$this->sql = $sql;$result = mysql_query($this->sql, $this->conn);
if (!$result) {
//调试中使用,sql语句出错时会自动打印出来
if ($this->show_error) {
$this->show_error("错误sql语句:", $this->sql);
}
} else {
$this->result = $result;
}
return $this->result;
}/*创建添加新的数据库*/
public function create_database($database_name) {
$database = $database_name;
$sqldatabase = 'create database ' . $database;
$this->query($sqldatabase);
}/*查询服务器所有数据库*/
//将系统数据库与用户数据库分开,更直观的显示?
public function show_databases() {
$this->query("show databases");
echo "现有数据库:" . $amount = $this->db_num_rows($rs);
echo "<br />";
$i = 1;
while ($row = $this->fetch_array($rs)) {
echo "$i $row[database]";
echo "<br />";
$i++;
}
}//以数组形式返回主机中所有数据库名
public function databases() {
$rsptr = mysql_list_dbs($this->conn);
$i = 0;
$cnt = mysql_num_rows($rsptr);
while ($i < $cnt) {
$rs[] = mysql_db_name($rsptr, $i);
$i++;
}
return $rs;
}/*查询数据库下所有的表*/
public function show_tables($database_name) {
$this->query("show tables");
echo "现有数据库:" . $amount = $this->db_num_rows($rs);
echo "<br />";
$i = 1;
while ($row = $this->fetch_array($rs)) {
$columnname = "tables_in_" . $database_name;
echo "$i $row[$columnname]";
echo "<br />";
$i++;
}
}/*
mysql_fetch_row() array $row[0],$row[1],$row[2]
mysql_fetch_array() array $row[0] 或 $row[id]
mysql_fetch_assoc() array 用$row->content 字段大小写敏感
mysql_fetch_object() object 用$row[id],$row[content] 字段大小写敏感
*//*取得结果数据*/
public function mysql_result_li() {
return mysql_result($str);
}/*取得记录集,获取数组-索引和关联,使用$row['content'] */
public function fetch_array($resultt="") {
if($resultt<>""){
return mysql_fetch_array($resultt);
}else{
return mysql_fetch_array($this->result);
}
}//获取关联数组,使用$row['字段名']
public function fetch_assoc() {
return mysql_fetch_assoc($this->result);
}//获取数字索引数组,使用$row[0],$row[1],$row[2]
public function fetch_row() {
return mysql_fetch_row($this->result);
}//获取对象数组,使用$row->content
public function fetch_object() {
return mysql_fetch_object($this->result);
}//简化查询select
public function findall($table) {
$this->query("select * from $table");
}//简化查询select
public function select($table, $columnname = "*", $condition = '', $debug = '') {
$condition = $condition ? ' where ' . $condition : null;
if ($debug) {
echo "select $columnname from $table $condition";
} else {
$this->query("select $columnname from $table $condition");
}
}//简化删除del
public function delete($table, $condition, $url = '') {
if ($this->query("delete from $table where $condition")) {
if (!empty ($url))
$this->get_admin_msg($url, '删除成功!');
}
}//简化插入insert
public function insert($table, $columnname, $value, $url = '') {
if ($this->query("insert into $table ($columnname) values ($value)")) {
if (!empty ($url))
$this->get_admin_msg($url, '添加成功!');
}
}//简化修改update
public function update($table, $mod_content, $condition, $url = '') {
//echo "update $table set $mod_content where $condition"; exit();
if ($this->query("update $table set $mod_content where $condition")) {
if (!empty ($url))
$this->get_admin_msg($url);
}
}/*取得上一步 insert 操作产生的 id*/
public function insert_id() {
return mysql_insert_id();
}//指向确定的一条数据记录
public function db_data_seek($id) {
if ($id > 0) {
$id = $id -1;
}
if (!@ mysql_data_seek($this->result, $id)) {
$this->show_error("sql语句有误:", "指定的数据为空");
}
return $this->result;
}// 根据select查询结果计算结果集条数
public function db_num_rows() {
if ($this->result == null) {
if ($this->show_error) {
$this->show_error("sql语句错误", "暂时为空,没有任何内容!");
}
} else {
return mysql_num_rows($this->result);
}
}// 根据insert,update,delete执行结果取得影响行数
public function db_affected_rows() {
return mysql_affected_rows();
}//输出显示sql语句
public function show_error($message = "", $sql = "") {
if (!$sql) {
echo "<font color='red'>" . $message . "</font>";
echo "<br />";
} else {
echo "<fieldset>";
echo "<legend>错误信息提示:</legend><br />";
echo "<div style='font-size:14px; clear:both; font-family:verdana, arial, helvetica, sans-serif;'>";
echo "<div style='height:20px; background:#000000; border:1px #000000 solid'>";
echo "<font color='white'>错误号:12142</font>";
echo "</div><br />";
echo "错误原因:" . mysql_error() . "<br /><br />";
echo "<div style='height:20px; background:#ff0000; border:1px #ff0000 solid'>";
echo "<font color='white'>" . $message . "</font>";
echo "</div>";
echo "<font color='red'><pre>" . $sql . "</pre></font>";
$ip = $this->getip();
if ($this->bulletin) {
$time = date("y-m-d h:i:s");
$message = $message . "rn$this->sql" . "rn客户ip:$ip" . "rn时间 :$time" . "rnrn";$server_date = date("y-m-d");
$filename = $server_date . ".txt";
$file_path = "error/" . $filename;
$error_content = $message;
//$error_content="错误的数据库,不可以链接";
$file = "error"; //设置文件保存目录//建立文件夹
if (!file_exists($file)) {
if (!mkdir($file, 0777)) {
//默认的 mode 是 0777,意味着最大可能的访问权
die("upload files directory does not exist and creation failed");
}
}//建立txt日期文件
if (!file_exists($file_path)) {//echo "建立日期文件";
fopen($file_path, "w+");//首先要确定文件存在并且可写
if (is_writable($file_path)) {
//使用添加模式打开$filename,文件指针将会在文件的开头
if (!$handle = fopen($file_path, 'a')) {
echo "不能打开文件 $filename";
exit;
}//将$somecontent写入到我们打开的文件中。
if (!fwrite($handle, $error_content)) {
echo "不能写入到文件 $filename";
exit;
}//echo "文件 $filename 写入成功";
echo "——错误记录被保存!";
//关闭文件
fclose($handle);
} else {
echo "文件 $filename 不可写";
}} else {
//首先要确定文件存在并且可写
if (is_writable($file_path)) {
//使用添加模式打开$filename,文件指针将会在文件的开头
if (!$handle = fopen($file_path, 'a')) {
echo "不能打开文件 $filename";
exit;
}//将$somecontent写入到我们打开的文件中。
if (!fwrite($handle, $error_content)) {
echo "不能写入到文件 $filename";
exit;
}//echo "文件 $filename 写入成功";
echo "——错误记录被保存!";//关闭文件
fclose($handle);
} else {
echo "文件 $filename 不可写";
}
}}
echo "<br />";
if ($this->is_error) {
exit;
}
}
echo "</div>";
echo "</fieldset>";echo "<br />";
}//释放结果集
public function free() {
@ mysql_free_result($this->result);
}//数据库选择
public function select_db($db_database) {
return mysql_select_db($db_database);
}//查询字段数量
public function num_fields($table_name) {
//return mysql_num_fields($this->result);
$this->query("select * from $table_name");
echo "<br />";
echo "字段数:" . $total = mysql_num_fields($this->result);
echo "<pre>";
for ($i = 0; $i < $total; $i++) {
print_r(mysql_fetch_field($this->result, $i));
}
echo "</pre>";
echo "<br />";
}//取得 mysql 服务器信息
public function mysql_server($num = '') {
switch ($num) {
case 1 :
return mysql_get_server_info(); //mysql 服务器信息
break;case 2 :
return mysql_get_host_info(); //取得 mysql 主机信息
break;case 3 :
return mysql_get_client_info(); //取得 mysql 客户端信息
break;case 4 :
return mysql_get_proto_info(); //取得 mysql 协议信息
break;default :
return mysql_get_client_info(); //默认取得mysql版本信息
}
}//析构函数,自动关闭数据库,垃圾回收机制
public function __destruct() {
if (!empty ($this->result)) {
$this->free();
}
mysql_close($this->conn);
} //function __destruct();/*获得客户端真实的ip地址*/
function getip() {
if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown")) {
$ip = getenv("http_client_ip");
} else
if (getenv("http_x_forwarded_for") && strcasecmp(getenv("http_x_forwarded_for"), "unknown")) {
$ip = getenv("http_x_forwarded_for");
} else
if (getenv("remote_addr") && strcasecmp(getenv("remote_addr"), "unknown")) {
$ip = getenv("remote_addr");
} else
if (isset ($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], "unknown")) {
$ip = $_server['remote_addr'];
} else {
$ip = "unknown";
}
return ($ip);
}
function inject_check($sql_str) { //防止注入
$check = eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);
if ($check) {
echo "输入非法注入内容!";
exit ();
} else {
return $sql_str;
}
}
function checkurl() { //检查来路
if (preg_replace("/https教程?://([^:/]+).*/i", "1", $_server['http_referer']) !== preg_replace("/([^:]+).*/", "1", $_server['http_host'])) {
header("location: http://www.111cn.net");
exit();
}
}}
相关文章
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- 这篇文章主要介绍了vue+高德地图实现地图搜索及点击定位操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-09
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
- 微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
- 小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
php导出csv格式数据并将数字转换成文本的思路以及代码分享
php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07- 本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
- ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
- 这篇文章主要介绍了vue项目,代码提交至码云,iconfont的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30
- 这篇文章主要介绍了IDEA插件之快速删除Java代码中的注释,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-18