<?php
class
CacheException
extends
Exception {}
/**
* 缓存抽象类
*/
abstract
class
Cache_Abstract {
/**
* 读缓存变量
*
* @param string $key 缓存下标
* @return mixed
*/
abstract
public
function
fetch(
$key
);
/**
* 缓存变量
*
* @param string $key 缓存变量下标
* @param strin ......
/**
*
* @param <type> $format
* @param <type> $utimestamp
* @return <type>
* @example
*
* echo udate('H:i:s.u'); 19:31:28.7812
*
* echo udate('H:i:s.uuuu'); 19:31:28.78127781277812778127
*
* echo udate('Y-M-D H:i:s.u'); 2010-Apr-Thu 19:40:49.484376
*
* echo udate('Y-m-d H:i:s.u'); 2010-04-22 20:20:32.453127
*
* echo date("Ymd").udate('Hisu'); 20100422201737484376
*
* echo date("Ymd").udate('Hisuu'); 20100422201926156251156251
*
* @author wulei
* @date
*
*/
function udate($format, $utimestamp = null)
{
if (is_null($utimestamp))
$utimestamp = microtime(true);
$timestamp = floor($utimestamp);
$milliseconds = round(($utimestamp - $timestamp) * 1000000);
return date(preg_replace('`(?<!\\\\)u`', $milliseconds, $format), $timestamp);
} ......
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE'] &nb ......
作用是把形如:www.abc.com/index.php/blog/show 的地址美化成 www.abc.com/blog/show ,使用$_SERVER['PATH_INFO']接收变量。
server
{
listen 80;
server_name myweb;
index index.html index.htm index.php;
root /home/zhaowei/code;
if (!-f $request_filename) {
rewrite ^/m-php-framework/(.*)$ /m-php-framework/index.php/$1 last;
}
location ~ .*\.(php|php5)
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME /home/zhaowei/code$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
log_forma ......
得到客户端的IP(php)
作者: laoyuanyyw 发表日期: 2006-08-01 10:43 文章属性: 原创 复制链接
function get_client_ip()
{
if(getenv('HTTP_CLIENT_IP'))
{
$client_ip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR'))
{
$client_ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR'))
{
$client_ip = getenv('REMOTE_ADDR');
}
else
{
$client_ip = $HTTP_SERVER_VAR['REMOTE_ADDR'];
}
return $client_ip;
} ......
上传jar手机游戏客户端时,因为有些手机如三星的某些机型只能安装jad文件,所以在后台上传需弄一个根据JAR文件自动生成JAD的功能。一般在JAR的文件包内,会有一个游戏信息文件,一般会在META-INF/MANIFEST.MF里,我们只需要读取到这个文件的内容,然后增加一些其它信息,生成JAD文件里就行了。这里需要用到PHP的zip扩展来读取JAR文件内容。
一、安装php zip扩展
wget http://pecl.php.net/get/zip-1.10.2.tgz
tar zxvf zip-1.10.2.tgz
cd zip-1.10.2
/opt/php528fpm/bin/phpize
./configure --with-php-config=/opt/php528fpm/bin/php-config
make
make install
cp /opt/php528fpm/lib/php/extensions/no-debug-non-zts-20060613/zip.so /opt/php528fpm/ext/
vi /opt/php528fpm/lib/php.ini
extension=zip.so //增加zip.so扩展
/opt/php528fpm/sbin/php-fpm restart //重启PHP
二、读取JAR里的文件内容生成JAD
$jar_file = "test.jar";
$jar_content = zip_open($jar_file);
if(!empty($jar_content)){
$jar_size = filesize($jar_file);
while ($zip_entry = zip_read($zip)) {
if (zip_entry_name($zip_entry) == "META-INF/") {
if (zip_entr ......