当前位置:  编程技术>php
本页文章导读:
    ▪超级精练的php缓存类与实例      分享一个超级简单的php缓存类,主要学习下实现思路。 一、调用示例 1、实例化 $cache = new Cache(); 2、设置缓存时间和缓存目录 $cache = new Cache(60, '/any_other_path/'); 第一个参数是缓存秒数,第.........
    ▪php ftp文件上传的简单例子      分享一个php上传单个文件到ftp服务器的简单例子。 代码: <?php /** * php 文件上传简单范例 * by www. */ // FTP连接参数 $host = 'ftp.xxx.com'; $usr = 'user'; $pwd = 'password'; // 用于上传的文件: .........
    ▪linux下安装 php GD支持库的方法      在Linux中安装PHP的GD支持库,步骤如下: 一、下载   代码示例: gd-2.0.33.tar.gz http://www.boutell.com/gd/ jpegsrc.v6b.tar.gz http://www.ijg.org/ libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/ zlib-1.2.2.tar.gz h.........

[1]超级精练的php缓存类与实例
    来源: 互联网  发布时间: 2013-12-24
分享一个超级简单的php缓存类,主要学习下实现思路。
一、调用示例
1、实例化
$cache = new Cache();
2、设置缓存时间和缓存目录
$cache = new Cache(60, '/any_other_path/');
第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置。
默认情况下,缓存时间是 3600 秒,缓存目录是 cache/
 
3、读取缓存
$value = $cache->get('data_key');
4、写入缓存
$value = $cache->put('data_key', 'data_value');
5、完整实例:
$cache = new Cache();

//从缓存从读取键值 $key 的数据
$values = $cache->get($key);

//如果没有缓存数据
if ($values == false) {
	//insert code here...
	//写入键值 $key 的数据
	$cache->put($key, $values);
} else {
	//insert code here...
}
二、php缓存类文件 Cache.class.php
<?php
/**
*  简单实用的php缓存类
*  Edit: www.
*/
class Cache {
	private $cache_path;//path for the cache
	private $cache_expire;//seconds that the cache expires

	//cache constructor, optional expiring time and cache path
	public function Cache($exp_time=3600,$path="cache/"){
		$this->cache_expire=$exp_time;
		$this->cache_path=$path;
	}

	//returns the filename for the cache
	private function fileName($key){
		return $this->cache_path.md5($key);
	}

	//creates new cache files with the given data, $key== name of the cache, data the info/values to store
	public function put($key, $data){
		$values = serialize($data);
		$filename = $this->fileName($key);
		$file = fopen($filename, 'w');
	    if ($file){//able to create the file
	        fwrite($file, $values);
	        fclose($file);
	    }
	    else return false;
	}

	//returns cache for the given key
	public function get($key){
		$filename = $this->fileName($key);
		if (!file_exists($filename) || !is_readable($filename)){//can't read the cache
			return false;
		}
		if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired
			$file = fopen($filename, "r");// read data file
	        if ($file){//able to open the file
	            $data = fread($file, filesize($filename));
	            fclose($file);
	            return unserialize($data);//return the values
	        }
	        else return false;
		}
		else return false;//was expired you need to create new
 	}
}
?>

    
[2]php ftp文件上传的简单例子
    来源: 互联网  发布时间: 2013-12-24

分享一个php上传单个文件到ftp服务器的简单例子。

代码:

<?php
/**
* php 文件上传简单范例
* by www.
*/
// FTP连接参数
$host = 'ftp.xxx.com';
$usr = 'user';
$pwd = 'password';
  
// 用于上传的文件:
$local_file = './example.txt';
$ftp_path = '/data/example.txt';
  
// 连接ftp
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
  
// 发送连接参数
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
  
// turn on passive mode transfers (some servers need this)
// ftp_pasv ($conn_id, true);
  
// perform file upload
$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);
  
// 检测上传状态:
print (!$upload) ? 'Cannot upload' : 'Upload complete';
print "\n";
  
/*
** Chmod the file (just as example)
*/
  
// If you are using PHP4 then you need to use this code:
// (because the "ftp_chmod" command is just available in PHP5+)
if (!function_exists('ftp_chmod')) {
   function ftp_chmod($ftp_stream, $mode, $filename){
        return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
   }
}
  
// try to chmod the new file to 666 (writeable)
if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) {
    print $ftp_path . " chmoded successfully to 666\n";
} else {
    print "could not chmod $file\n";
}
  
// close the FTP stream
ftp_close($conn_id);
?>

    
[3]linux下安装 php GD支持库的方法
    来源: 互联网  发布时间: 2013-12-24

在Linux中安装PHP的GD支持库,步骤如下:
一、下载
 

代码示例:
gd-2.0.33.tar.gz http://www.boutell.com/gd/
jpegsrc.v6b.tar.gz http://www.ijg.org/
libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/
zlib-1.2.2.tar.gz http://sourceforge.net/projects/zlib/
freetype-2.1.9.tar.gzhttp://sourceforge.net/projects/freetype/
php-4.3.9.tar.gz http://www.php.net

二、安装

1.安装zlib
 

代码示例:
tar zxvf zlib-1.2.2.tar.gz
cd zlib-1.2.2
./configure
make
make install

2.安装libpng
 

代码示例:
tar zxvf libpng-1.2.7.tar.tar
cd libpng-1.2.7
cd scripts/
mv makefile.linux ../makefile
cd ..
make
make install
 

注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个

3.安装freetype
 

代码示例:
tar zxvf freetype-2.1.9.tar.gz
cd freetype-2.1.9
./configure
make
make install

4.安装Jpeg
 

代码示例:
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure --enable-shared
make
make test
make install
 

注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库

5.安装GD
 

代码示例:
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --with-png --with-freetype --with-jpeg
make install

上面的安装步骤是没有设定 安装目录的,测试重新编译PHP时用上面方法均可。
若要指定安装地址,请采用如下方式,推荐定义安装目录。
 
1、安装 zlib
 

代码示例:
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/zlib-1.2.3.tar.gz
tar -zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure –prefix=/usr/local/zlib
make
make install
 

2、安装 jpeg
 

代码示例:
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/jpeg-6b.tar.gz
mkdir -p /usr/local/jpeg6
mkdir -p /usr/local/jpeg6/bin
mkdir -p /usr/local/jpeg6/lib
mkdir -p /usr/local/jpeg6/include
mkdir -p /usr/local/jpeg6/man
mkdir -p /usr/local/jpeg6/man1
mkdir -p /usr/local/jpeg6/man/man1
tar -zxf jpeg-6b.tar.gz
cd jpeg-6b
./configure –prefix=/usr/local/jpeg6 –enable-shared –enable-static
make
make install
 

安装完成提示:
Libraries have been installed in:
/usr/local/jpeg6/lib
 
3、安装 libpng
 

代码示例:
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/libpng-1.2.16.tar.gz
tar -zxf libpng-1.2.16.tar.gz
cd libpng-1.2.16
./configure –prefix=/usr/local/libpng
make
make install
 

4、安装 freetype
 

代码示例:
wget http://download.savannah.nongnu.org/releases/freetype/freetype-2.3.4.tar.gz
tar -zxf freetype-2.3.4.tar.gz
cd freetype-2.3.4
mkdir -p /usr/local/freetype
./configure –prefix=/usr/local/freetype
make
make install
 

5、安装 GD
 

代码示例:
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/gd-2.0.33.tar.gz
tar -zxf gd-2.0.33.tar.gz
cd gd-2.0.33
mkdir -p /usr/local/gd2
./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6/ –with-png=/usr/local/lib/ –with-zlib=/usr/local/lib/ –with-freetype=/usr/local/freetype/
make
make install
 

安装jpg时,如果出错,需要先装libtool:
libtool-1.X.tar.gz  //是我下载的版本
 

代码示例:
./configure
make
make install
再装jpegsrc.v6b.tar.gz
./configure  --enable-shared  --enable-static 这些lib这种包用默认路径就行。
 

不然如果其他的需要这个包还得指它的路径
 
这里可能会出错
checking host system type… Invalid configuration `x86_64-unknown-linux-gnu ‘: machine `x86_64-unknown ‘ not recognized
checking build system type… Invalid configuration `x86_64-unknown-linux-gnu ‘: machine `x86_64-unknown ‘ not recognized
configure: error: libtool configure failed 
 
或者
/libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c
make: ./libtool:命令未找到
make: *** [jcapimin.lo] 错误 127
./libtool --mode=compile gcc -O2  -I. -c ./cjpeg.c
make: ./libtool:命令未找到
make: *** [cjpeg.lo] 错误 127 
 
解决方法
cp /usr/share/libtool/config/config.guess .
cp /usr/share/libtool/config/config.sub .
cp到jpeg的安装文件目录,注意后面的个“.”
make clean
 
再重新
./configure --prefix=/usr/local/libjpeg/   --enable-shared  --enable-static
make
make install
--------------------------------
如果已经安装php,建议通过追加编译安装
进入“[php解压目录]/ext/gd”目录,执行如下命令:
[php安装目录]/bin/phpize
./configure --with-php-config=[php安装目录]/bin/php-config --with-jpeg=[jpeg-6b安装目录] --with-png=[libpng安装目录] --with-freetype=[freetype安装目录] --with-gettext=[gettext安装目录] --with-gd=[gd安装目录] 
make 
make install 
 
安装成功后会在“[php安装目录]/lib/php/extensions/no-debug-non-zts-20060613”目录下生成gd.so文件,
然后cp [php安装目录]/lib/php/extensions/no-debug-non-zts-20060613/gd.so /opt/php/ext
 
修改php.ini文件加载gd组件,添加extension_dir=/opt/php/ext和extension=gd.so,如果有extension_dir=/opt/php/ext则不需要增加
extension_dir=/opt/php/ext 
extension=gd.so 


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3