龚哥哥 爱生活、做自己!
CentOS下完全卸载mysql
发表于 2015-9-1 | 浏览(672) | 数据库

一、yum方式安装的mysql

yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf

查看是否还有mysql软件

rpm -qa|grep mysql

如果存在的话,继续删除即可。

二、rpm方式安装的mysql

1、查看系统中是否以rpm包安装的mysql:

[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686

2、卸载mysql

[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686

3、删除mysql服务

[root@localhost local]# chkconfig --list | grep -i mysql
[root@localhost local]# chkconfig --del mysql

4、删除分散mysql文件夹

[root@localhost local]# whereis mysql 或者 find / -name mysql
mysql: /usr/lib/mysql /usr/share/mysql

清空相关mysql的所有目录以及文件

rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql
rm -rf /usr/my.cnf

通过以上几步,mysql应该已经完全卸载干净了

阅读全文

MySQL mysql-5.1升级到mysql-5.6
发表于 2015-9-1 | 浏览(637) | 数据库

查看是否有旧版本mysql

rpm -qa|grep mysql

CentOS卸载旧版本mysql

yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /data/soft/mysql/*
rm /etc/my.cnf.rpmsave

删除mysql服务
  chkconfig --list | grep -i mysql
  chkconfig --del mysql

删除分散mysql文件夹
  whereis mysql 或者 find / -name mysql

安装cmake

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap
gmake
gmake install

下载mysql安装包进行安装

wget http://dev.mysql.com/get/archives/mysql-5.6/mysql-5.6.11.tar.gz
tar zxvf mysql-5.6.11.tar.gz
cd mysql-5.6.11
cmake . -DCMAKE_INSTALL_PREFIX=/data/soft/mysql -DMYSQL_DATADIR=/data/dbdata -DSYSCONFDIR=/data/soft/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DWITH_DEBUG=0 -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=yes
make
make install

生成配置文件链接

cp /data/mysql/support-files/my-default.cnf /data/mysql/my.cnf
cp /data/mysql/support-files/my-default.cnf /etc/my.cnf

修改$PATH生成文件

修改$PATH生成文件
vim /etc/profile

最后一行加上
PATH=$PATH:/data/soft/mysql/bin
这样MySQL的命令行软件就可以直接使用了

复制mysql的服务shell文件

cp /data/soft/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

创建MySQL系统数据库

/data/soft/mysql/scripts/mysql_install_db --user=mysql --basedir=/data/soft/mysql --datadir=/data/dbdata

开启MySQL服务

service mysqld start

设置MySQL开机启动

echo "service mysqld start" >> /etc/rc.local

到这里mysql安装完成了, 我们开始使用客户端连接mysql

如果报错:
  SQL Error (1130): Host 'ip' is not allowed to connect to this MySQL server

首先按下面的步骤登录Mysql服务器

登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:

#mysql -uroot -ppassword
mysql>use mysql;

mysql>update user set host = '%'  where user ='root';

mysql>flush privileges;

mysql>select 'host','user' from user where user='root';

mysql>quit
OK。远程连接成功!

阅读全文

CentOS_6.5安装Nginx+PHP+MySQL
发表于 2015-9-1 | 浏览(1128) | 服务器

准备工作

yum -y install automake autoconf libtool make gcc gcc-c++ libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl-devel

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

可以是任何目录,本文选定的是/data/soft/src

一:Nginx安装

cd /data/soft/src

1.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /data/soft/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure
make
make install

2.安装zlib库

http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /data/soft/src
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

3.安装ssl(某些vps默认没装ssl)

cd /data/soft/src
wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
tar -zxvf openssl-1.0.2e.tar.gz
./config
make && make install
cp apps/openssl /usr/bin/

4.安装nginx

cd /data/soft/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --sbin-path=/data/soft/nginx/nginx \--conf-path=/data/soft/nginx/nginx.conf \--pid-path=/data/soft/nginx/nginx.pid \--with-http_ssl_module \--with-pcre=/data/soft/src/pcre-8.38 \--with-zlib=/data/soft/src/zlib-1.2.8 \--with-openssl=/data/soft/src/openssl-1.0.2e
make
make install

安装成功后 /data/soft/nginx 目录下如下:
  fastcgi.conf            koi-win             nginx.conf.default
  fastcgi.conf.default    logs                scgi_params
  fastcgi_params          mime.types          scgi_params.default
  fastcgi_params.default  mime.types.default  uwsgi_params
  html                    nginx               uwsgi_params.default
  koi-utf                 nginx.conf          win-utf

5.启动

确保系统的 80 端口没被其他程序占用,运行/data/soft/nginx/nginx 命令来启动 Nginx,

netstat -ano|grep 80
如果查不到结果后执行,有结果则忽略此步骤
sudo /usr/local/nginx/nginx

打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

到这里nginx就安装完成了,如果只是处理静态html就不用继续安装了,如果你需要处理php脚本的话,还需要安装php-fpm。

6.Nginx开机启动

echo "/data/soft/nginx/sbin/nginx" >> /etc/rc.local

二:编译安装php-fpm

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以到这里查看:http://www.php.net/manual/en/configure.about.php

1.php-fpm安装(推荐安装方式)

cd /data/soft/src
wget http://museum.php.net/php5/php-5.4.7.tar.gz
tar zvxf php-5.4.7.tar.gz
cd php-5.4.7
./configure --prefix=/data/soft/php --enable-fpm --with-mcrypt \--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --enable-pdo --enable-ftp --with-pdo_sqlite --with-openssl=/usr/local/ssl/ --with-pdo_mysql
make && make install

2.以上就完成了php-fpm的安装

下面是对php-fpm运行用户进行设置
cd /data/soft/php
cp etc/php-fpm.conf.default etc/php-fpm.conf

vi etc/php-fpm.conf
修改
  user = www
  group = www

  如果www用户不存在,那么先添加www用户
    groupadd www
    useradd -g www www

3.修改nginx配置文件以支持php-fpm

修改nginx配置文件为,nginx.conf
其中server段增加如下配置:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
  root /data/www; #项目根目录
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

重启nginx服务器
  /data/nginx/nginx -s reload


4.创建测试php文件

在/data/www下创建index.php文件,输入如下内容:
<?php
  echo phpinfo();
?>

5.启动php-fpm服务

/data/soft/php/sbin/php-fpm

5.5杀死php-fpm进程

killall php-fpm(可以配合启动命令实现重启效果)

6.php-fpm关闭与重启

php-fpm 关闭
  kill -INT `cat /data/soft/php/var/run/php-fpm.pid`

php-fpm 重启
  kill -USR2 `cat /data/soft/php/var/run/php-fpm.pid`

7.php-fpm开机启动

echo "/data/soft/php/sbin/php-fpm" >> /etc/rc.local

8.解决php-fpm.pid文件不存在(重启php-fpm)

vim /data/soft/php/etc/php-fpm.conf
  打开 pid = run/php-fpm.pid

三:mysql安装

cd /data/soft/src
wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.70.tar.gz
tar -zxvf mysql-5.1.70.tar.gz
cd mysql-5.1.70

yum install ncurses ncurses-devel
./configure  '--prefix=/data/soft/mysql' '--without-debug' '--with-charset=utf8' '--with-extra-charsets=all' '--enable-assembler' '--with-pthread' '--enable-thread-safe-client' '--with-mysqld-ldflags=-all-static' '--with-client-ldflags=-all-static' '--with-big-tables' '--with-readline' '--with-ssl' '--with-embedded-server' '--enable-local-infile' '--with-plugins=innobase'	make
make install

到此mysql就安装到了/data/soft/mysql路径下,下面开始mysql的配置工作

配置文件

cp support-files/my-medium.cnf /etc/my.cnf

mysql设置开机自启动

cp -r support-files/mysql.server /etc/init.d/mysqld  
/sbin/chkconfig --del mysqld
/sbin/chkconfig --add mysqld

配置权限表

chown -R mysql:mysql /data/soft/mysql
/data/soft/mysql/bin/mysql_install_db --user=mysql

启动mysql

/etc/init.d/mysqld start

mysql初始化配置

export PATH=/data/soft/mysql/bin:$PATH
/data/soft/mysql/bin/mysql_secure_installation
注:这里根据提示设置mysql的root密码

到这里mysql安装完成了, 我们开始使用客户端连接mysql

如果报错:
  SQL Error (1130): Host '192.168.1.100' is not allowed to connect to this MySQL server

首先按下面的步骤登录Mysql服务器

登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:

#mysql -uroot -ppassword
mysql>use mysql;

mysql>update user set host = '%'  where user ='root';

mysql>flush privileges;

mysql>select 'host','user' from user where user='root';

mysql>quit
OK。远程连接成功!

软件包可以到360云盘直接下载:http://yunpan.cn/cfX8FB5UTnfDR (提取码:91e7)

阅读全文

2015最新CentOS安装Nginx+PHP
发表于 2015-9-1 | 浏览(736) | 服务器

yum安装基本库

yum -y install automake autoconf libtool make gcc gcc-c++ libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

准备

mkdir /data
cd /data
mkdir soft www logs dbdata
cd soft/
mkdir nginx php mysql
cd ../logs
mkdir nginx php mysql

一:Nginx安装

cd /data/soft/src

1.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /data/soft/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure
make && make install

2.安装zlib库

http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /data/soft/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install

3.安装ssl(某些vps默认没装ssl)

cd /data/soft/src
wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
tar -zxvf openssl-1.0.2.tar.gz
./config
make && make install
cp apps/openssl /usr/bin/
如果提示覆盖,确认就OK了,再查看openssl version版本就是最新版了

4.安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /data/soft/nginx 目录下的详细步骤:

cd /data/soft/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/data/soft/nginx \--sbin-path=/data/soft/nginx/nginx \--conf-path=/data/soft/nginx/nginx.conf \--pid-path=/data/soft/nginx/nginx.pid \--lock-path=/data/soft/nginx/nginx.lock \--error-log-path=/data/logs/nginx/error.log \--http-log-path=/data/logs/nginx/access.log \--http-client-body-temp-path=/data/logs/nginx/client_body_temp \--http-proxy-temp-path=/data/logs/nginx/proxy_temp \--http-fastcgi-temp-path=/data/logs/nginx/fastcgi_temp \--http-uwsgi-temp-path=/data/logs/nginx/uwsgi_temp \--http-scgi-temp-path=/data/logs/nginx/scgi_temp \--user=nginx \--group=nginx \--with-http_ssl_module \--with-pcre=/data/src/pcre-8.40 \--with-zlib=/data/src/zlib-1.2.11 \--with-openssl=/data/src/openssl-1.0.2e
make && make install

cp /data/soft/nginx/nginx /etc/init.d/
/etc/init.d/nginx 			启动nginx
/etc/init.d/nginx -s reload		重启nginx
/etc/init.d/nginx -s stop		关闭nginx

添加nginx开机启动

echo "/etc/init.d/nginx" >> /etc/rc.local

二:编译安装php-fpm

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以到这里查看:http://www.php.net/manual/en/configure.about.php

1.php-fpm安装(推荐安装方式)

cd /data/soft/src
wget http://museum.php.net/php5/php-5.4.7.tar.gz
tar zvxf php-5.4.7.tar.gz
cd php-5.4.7
./configure --prefix=/data/soft/php --enable-fpm --with-mcrypt \--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --enable-pdo --enable-ftp --with-pdo_sqlite --with-openssl=/usr/local/ssl/ --with-pdo_mysql
make && make install

2.以上就完成了php-fpm的安装、下面是对php-fpm运行用户进行设置

cd /data/soft/php
cp etc/php-fpm.conf.default etc/php-fpm.conf

vi etc/php-fpm.conf 修改
user = www
group = www

如果www用户不存在,那么先添加www用户
  groupadd www
  useradd -g www www

去掉前面的注释
  pid = run/php-fpm.pid

3.修改nginx配置文件以支持php-fpm

修改nginx配置文件为,nginx.conf

其中server段增加如下配置

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
  root /data/www; #项目根目录
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

重启nginx服务器
  /data/nginx/nginx -s reload

4.创建测试php文件、在/data/www下创建index.php文件,输入如下内容

<?php
  echo phpinfo();
?>

5.启动php-fpm服务

/data/soft/php/sbin/php-fpm

5.5杀死php-fpm进程

killall php-fpm(可以配合启动命令实现重启效果)

6.php-fpm关闭与重启

php-fpm 关闭
  kill -INT `cat /data/soft/php/var/run/php-fpm.pid`

php-fpm 重启
  kill -USR2 `cat /data/soft/php/var/run/php-fpm.pid`

7.php-fpm开机启动

cp /data/soft/php/sbin/php-fpm /etc/init.d/php-fpm
echo "/etc/init.d/php-fpm" >> /etc/rc.local

阅读全文

ThinkPHP分页驱动 仿百度
发表于 2015-9-1 | 浏览(714) | PHP

52c6db6d3b1b0.jpg

<?php
 class PagingModel
 {
    private $m_PagingDataArray;  //接收页面提交的post或者get的一维数组条件
    private $m_Configuration;  //配置项数据
    private $m_Fraction;  //每个页面显示的条数
    private $m_Total;  //数据的总条数
    private $m_Page;  //页面传递过来的页码值
    private $m_Starting;  //查询数据的起始值
    private $m_TotalFraction;  //计算出来的总页数
    private $m_Url;  //分页使用的url地址
    private $m_PageCoent;  //是否开启页面数字分页按钮
    
    /*
        构造方法
    */
    public function __construct($PagingDataArray = array(), $Configuration = array())
    {
        /* 初始化属性数据 */
        $this->m_PagingDataArray = array();
        $this->m_Configuration = array();
        
        /* 基础数据设置 */
        $this->SetPagingDataArray($PagingDataArray);
        $this->SetConfiguration($Configuration );
        $this->SetBasisData();
    }
    
    /*
        设置数据
    */
    private function SetPagingDataArray($PagingDataArray)
    {
        /* 判断配置项的数据是否为空 */
        if(false == empty($PagingDataArray)) {
            $this->m_PagingDataArray = $PagingDataArray;
        } else {
            $this->m_PagingDataArray = array();
        }
    }
    
    /*
        设置配置项数据
    */
    private function SetConfiguration($Configuration)
    {
        /* 判断配置项的数据是否为空 */
        if(false == empty($Configuration)) {
            $this->m_Configuration = $Configuration;
        } else {
            $this->m_Configuration = array();
        }
    }
    
    
    /*
        处理判断数组中是否存在某个键名
    */
    private function Setuppase($Property, $Key, $Content)
    {
        /* 判断 $Key 是否在数组中存在的键名 */
        if(true == array_key_exists($Key, $this->m_Configuration)) {
            $this->$Property = $this->m_Configuration["$Key"];
        } else {
            $this->$Property = $Content;
        }
    }
    
    /*
        基础数据设置
    */
    private function SetBasisData()
    {
        $this->SetFraction();
        $this->SetTotal();
        $this->SetPage();
        $this->SetStarting();
        $this->SetTotalFraction();
        $this->SetUrl();
        $this->SetPageCoent();
    }
    /*
        设置每页显示数据的条数
    */
    private function SetFraction()
    {
        $this->Setuppase('m_Fraction', 'traction', 15);
    }
    
    /*
        设置数据的总条数
    */
    private function SetTotal()
    {
        $this->Setuppase('m_Total', 'total', 0);
    }
    
    /*
        设置页面传递过来的页码值
    */
    private function SetPage()
    {
        /* 判断 $Key 是否在数组中存在的键名 */
        if(true == array_key_exists('page', $this->m_PagingDataArray)) {
            $this->m_Page = max(1, (false == empty($this->m_PagingDataArray['page']) ? intval($this->m_PagingDataArray['page']) : 0));
        } else {
            $this->m_Page = 1;
        }
    }
    
    /*
        设置查询数据的起始值
    */
    private function SetStarting()
    {
        $this->m_Starting = ($this->m_Page - 1) * $this->m_Fraction;
    }
    
    /*
        设置计算出来的总页数, 总页数 = 总条数除以每页显示的条数。
    */
    private function SetTotalFraction()
    {
        $this->m_TotalFraction = ceil($this->m_Total/$this->m_Fraction);
        
        /* 当前页数大于最大页数时,将总页数的值赋值给当前页面,防止超越操作。*/
        if($this->m_TotalFraction <= $this->m_Page) {
            $this->m_Page = $this->m_TotalFraction;
        }
    }
    
    /*
        设置分页的url地址
    */
    private function SetUrl()
    {
        $this->Setuppase('m_Url', 'url', null);
    }
    
    /*
        设置是否开启显示数字分页按钮
    */
    private function SetPageCoent()
    {
        $this->Setuppase('m_PageCoent', 'pagecoent', 0);
    }
    
    /*
    获取查询数据的起始值
    */
    public function GetStarting()
    {
        return $this->m_Starting;
    }
    
    /*
        获取每页显示的条数值
    */
    public function GetFraction()
    {
        return $this->m_Fraction;
    }
    
    /*
        获取拼接的每页显示的数字页码
    */
    private function GetPageCoent($PageUrl)
    {
        /* 如果page值不等于1的时候 */
        if($this->m_Page != 1) {
            /* 如果分页数值加显示的分页个数值大于当前总页码数的时候 */
            if(($this->m_Page+$this->m_PageCoent) > $this->m_TotalFraction) {
                /* 计算起始值 */
                $Pageis = $this->m_Page-$this->m_PageCoent;
                /* 计算最大数值 */
                $PageMax = $this->m_TotalFraction;
                
            /* 如果分页数值加显示的分页个数值不大于当前总页码数的时候 */
            } else {
                /* 计算起始值,如果当前page小于等于显示的页数时,就将起始设置为1,防止负数 */
                if($this->m_Page <= $this->m_PageCoent) {
                    $Pageis = 1;
                } else {
                    $Pageis = $this->m_Page-$this->m_PageCoent;
                }
                
                
                /* 计算最大数值,当前page数值加需要显示的页码个数值 */
                $PageMax = (($this->m_Page+$this->m_PageCoent));
            }
            
            /* 如果显示页码值大于等于总页码值时,将起始值设置为1 */
            if($this->m_PageCoent >= $this->m_TotalFraction) {
                $Pageis = 1;
            }
            
        /* 如果page等于1的时候 */
        } else {
            /* 如果显示页码值大于等于总页码值时,就将总页码值赋值给循环的最大值 */
            if($this->m_PageCoent >= $this->m_TotalFraction) {
                $PageMax = $this->m_TotalFraction;
            } else {
                $PageMax = $this->m_PageCoent+1;
            }
            $Pageis = 1;
        }
        
        /* 循环拼接需要显示的分页数值个数代码 */
        $PageCoent = '<li>';
        for($Pagei=$Pageis; $Pagei<=$PageMax; $Pagei++) {
            if($this->m_Page == $Pagei) {
                $PageCoent .= '<span class="pageingpagecoent pageingpagecoents">'.$Pagei.'</span>';
            } else {
                $PageCoent .= '<a href="'.$PageUrl.$Pagei.'"><span class="pageingpagecoent">'.$Pagei.'</span></a>';
            }
            
        }
        /* 返回拼接好的代码 */
        return $PageCoent;
    }
    
    
    /*
        获取url拼接,处理URL拼接方法
    */
    private function GetUrlSplice()
    {
        $UrlSplice = '?';
        if(false == empty($this->m_PagingDataArray)) {
            //删除当前数组中的page数据
            unset($this->m_PagingDataArray['page']);
            foreach($this->m_PagingDataArray as $PKey=>$pValue) {
                /* 拼接普通url */
                if((false == empty($pValue)) && (false == is_array($pValue))) {
                    $UrlSplice .= $PKey.'='.$pValue.'&';
                }
                
                /* 拼接是数组的url */
                /*if((false == empty($pValue)) && (true == is_array($pValue))) {
                    
                }*/
            }
            //print_r($this->m_PagingDataArray);
        }
        return $UrlSplice;
    }
    
    
    /*
        返回拼接好的html代码(包括js代码)
    */
    public function GetPagingHtmlInfo()
    {
        $UrlSplice = $this->GetUrlSplice();
        
        $PageUrl = $this->m_Url.$UrlSplice.'page=';
        $PageUrls = $PageUrl.($this->m_Page-1);
        $PageUrly = $PageUrl.($this->m_Page+1);
        
        if($this->m_PageCoent > 0) {
            $PageCoent = $this->GetPageCoent($PageUrl);
        } else {
            $PageCoent = null;
        }
        
        /* 定义分页数据 */
        $Html = '<div id="pageingmodel"><ul id="pageing">';
        
        $Home = '<li><a href="'.$PageUrl.'1">首页</a></li>';
        $Previous = '<li><a href="'.$PageUrls.'">上一页</a></li>';
        $Next = '<li><a href="'.$PageUrly.'">下一页</a></li>';
        $End = '<li><a href="'.$PageUrl.$this->m_TotalFraction.'">尾页</a></li>';
        
        $HomeS = '<li class="pageban">首页</li>';
        $PreviousS = '<li class="pageban">上一页</li>';
        $NextS = '<li class="pageban">下一页</li>';
        $EndS = '<li class="pageban">尾页</li>';
        
        
        /* 当只有一页数据的时候,就没有拼接url地址 */
        if($this->m_TotalFraction == 1) {
            $Html .= $HomeS.$PreviousS.$PageCoent.$NextS.$EndS;
        /* 当没有数据的时候,就没有拼接url地址 */
        } elseif($this->m_Page == $this->m_TotalFraction && $this->m_Total == 0) {
            $Html .= $HomeS.$PreviousS.$PageCoent.$NextS.$EndS;
        /* 当为第一页的时候 */
        } elseif($this->m_Page == 1) {
            $Html .= $HomeS.$PreviousS.$PageCoent.$Next.$End;
        /* 到尾部的时候 */
        } elseif($this->m_Page == $this->m_TotalFraction  && $this->m_TotalFraction > 1) {
            $Html .= $Home.$Previous.$PageCoent.$NextS.$EndS;
        /* 正常的时候 */
        } else {
                $Html .= $Home.$Previous.$PageCoent.$Next.$End;
        }
        $Html .= '<li>当前第<span class="pagepublic">'.$this->m_Page.'</span>页</li><li>共<span class="pagepublic">'.$this->m_TotalFraction.'</span>页</li><li>总有<span class="pagepublic">'.$this->m_Total.'</span>条数据</li></ul></div>';
        /* css代码 */
        $Css = '<style type="text/css">
            #pageingmodel { width:100%; }
            #pageing li { float:left; margin-right:15px; }
            #pageing li a { color:#0D93BF; }
            #pageing li a:hover { color:#F00; }
            .pageban { color:#999; }
            .pageingpagecoent, .pagepublic { font-weight:bold; }
            .pageingpagecoent { padding:4px 8px; background:#C4C5C5; color:#FFF; margin:0px 5px; -moz-border-radius:4px; -webkit-border-radius:4px; border-radius:4px; font-size:13px; }
            .pageingpagecoents, .pageingpagecoent:hover { background:#099ACF; }
            
        </style>';
            
        return $Html.$Css;
    }
    
 }

 //使用方法
 /* 调用分页模块 */
$Configuration = array(
    'total' => $StudentCount,  //数据总条数
    'traction' => $StudentPage,  //每页显示条数
    'pagecoent' => 3,  //分页显示的个数
    'url' => './StudentManagement',  //翻页的url地址
);
       //$_REQUEST : 如果当前查询有其它条件将会自动选择拼接起来
      //$Configuration : 配置项
$PageingObj = new PagingModel($_REQUEST, $Configuration);
$this->assign('pageing', $PageingObj->GetPagingHtmlInfo());

阅读全文

ThinkPHP无限分类模块
发表于 2015-9-1 | 浏览(817) | PHP
交流QQ群:423804514 (如果加的时候请注明 ThinkPHP)
分享快乐!
无限分类,单分类,都支持,增删改查基于ThinkPHP操作的,如果大家是自己的数据库操作可以改改就可以了,本身模块是不应该把数据层写在模块里面的,但是我的项目 分类基本都是这些操作,增删改查,所以我直接写在里面了,不想重复的再去写增删改查的代码。

我这里顺便把两张表也上传了,表前缀改成您们自己的就可以了。test.php 这段代码,可以在您的项目 Lib 里面的某一个类的嘛的其中一个方法里面就可以直接使用。

Tree无限分类.zip

阅读全文

PHP文件生成模块
发表于 2015-9-1 | 浏览(582) | PHP
<?php
 /*
 *    描    述    :    把数据写入文件
 */
 namespace Model\Backend;
 class FilePutModel
 {
    /* 关闭自动连接数据库 */
    protected $autoCheckFields = false;
    private $m_DirName;  //目录地址
    private $m_FileName;  //文件名称
    private $m_Suffis;  //文件后缀名
    private $m_DataArray;  //需要写入文件的数据
    /*
     *    构造方法
     */
    public function __construct($DirName, $FileName, $DataArray, $Suffis = null)
    {
        $this->m_DirName = null;
        $this->m_FileName = null;
        $this->m_FileSuffix = null;
        $this->m_DataArray = array();
        /* 基础数据设置 */
        $this->m_DirName = $DirName;
        $this->m_FileName = $FileName;
        $this->m_FileSuffix = $Suffis;
        $this->m_DataArray = $DataArray;
        
        /* 基础数据处理 */
        $this->IsDirThere();
        $this->IsFileSuffix();
    }
    /*
     *    数据处理
     */
    public function SetFileData()
    {
        if(false == empty($this->m_FileName) && false == empty($this->m_DataArray)) {
            $Statu = file_put_contents(PATH_PHP_FILE.$this->m_FileName.'.'.$this->m_FileSuffix, "<?php\n\rreturn ".var_export($this->m_DataArray, true).";\n\r?>");
            if(false != $Statu) {
                return true;
            } else {
                return false;
            }
        } else {
            return '数据不能为空!';
        }
    }
    
    /*
     *    判断目录是否存在
     */
    private function IsDirThere()
    {
        if(false == is_dir($this->m_DirName)) {
            mkdir($this->m_DirName, 0777, true);
        }
    }
    
    /*
     *    判断后缀名是否存在
     */
    private function IsFileSuffix()
    {
        if(true == empty($this->m_FileSuffix)) {
            $this->m_FileSuffix = 'php';
        }
    }
}
 ?>
//使用说明
$FilePutObj = new \Model\Backend\FilePutModel('路径',文件名称,'数据','文件后缀名');
        if(true == $FilePutObj->SetFileData()) {
            //成功
        }

阅读全文

javascript常用的属性修改样式操作
发表于 2015-9-1 | 浏览(509) | 前端

用JS修改CSS样式

今天修改项目的一个页面,涉及到通过js来修改css样式。自己盲目的试了好几种语法,结果都是错的。

看来还是要求助度娘啊。

突然发现在我们公司做开发,包你的js水平和css水平提高,为什么,因为公司只有一个美工,qie~~

1、添加样式

document.getElementById("id").className="div_class";

2、添加背景图片

document.getElementById("id").style.backgroundImage ="url(../images/tab_bg1.gif)";
也可以填网址

3、添加颜色

document.getElementById("id").style.color = "#fff";

4、设置字体大小

document.getElementById("id").style.fontSize = "30px";

5、设置背景色

document.getElementById("id").style.backgroundColor = "blue";

6、设置边框

document.getElementById("id").style.border = "2px solid #333333";
参数分别为宽度,样式,颜色

7、设置宽度

document.getElementById("id").style.width = "40%";

8、居中显示

document.getElementById("id").style.textAlign = "center";

阅读全文

在html中实现两个html文件交互传递数据的方法
发表于 2015-9-1 | 浏览(571) | 前端

a.html 文件 代码如下

<html>
	<head>
	</head>
	<body>
		<input type = "text" id = "inputid">
		<input type = "button" onclick="submit('3')" value = "提交">
	</body>
</html>
<script>
function submit(e) {
	var input1 = document.getElementById("inputid");
	var age = e.elements[1].value;
	window.open("b.html?inputstr="+age);  //传入参数
}
</script>

b.html 文件  代码如下

<html>
	<head>
	</head>
	<body>
	</body>
</html>
<script>
	//获得参数的方法
	var request = {
		QueryString : function(val) {
			var uri = window.location.search;
			var re = new RegExp("" +val+ "=([^&?]*)", "ig");
			return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
		}
	}

	//调用方法获得参数
	var rt = request.QueryString("inputstr");
	alert(rt);
</script>

新建两个 a.html  和 b.html 文件,将代码直接拷贝进去就可以正常测试看见结果了

阅读全文

PHP中常见的字符编码设置,截取字符部分
发表于 2015-9-1 | 浏览(586) | PHP
echo mb_substr('你aa好啊反反复复', 0, 6, 'utf-8').'<br />';   //mb_substr— 获取字符串的部分
  你aa好啊反

echo mb_strlen('ww刚好刚').'<br />';
  11

echo $str = '我好啊';  // 一个字符 3 字节
  我好啊

echo '<br />';
echo $ff = mb_detect_encoding($str).'<br />';   //mb_detect_encoding 检测字符的编码
  UTF-8

$ret = mb_convert_encoding($str, 'GBK', 'UTF-8');   //mb_convert_encoding— 转换字符的编码
  echo mb_strlen($str).'<br />';   //mb_strlen— 获取字符串的长度
    9
  echo mb_strlen($ret).'<br />';
    6

$a = "翻盖手机,MOTO,you like it?";
  echo mb_substr($a,0,6,"UTF-8");
    翻盖手机,M

阅读全文

TOP