当前位置: 编程技术>php
本页文章导读:
▪php下获取客户端ip地址的函数
代码如下:function getip() { $IP=getenv('REMOTE_ADDR'); $IP_ = getenv('HTTP_X_FORWARDED_FOR'); if (($IP_ != "") && ($IP_ != "unknown")) $IP=$IP_; return $IP; } 下面这个比较好的 代码如下:function getIP() { if (isset($_SERVER)) .........
▪PHP 中文简繁互转代码 完美支持大陆、香港、台湾及新加坡
例子:(简 > 繁)面包 > 麵包 (zh-tw)寮国 > 老撾 (zh-hk)中国人寿 > 中國人壽 (zh-hk)罗纳尔多 > 朗拿度 (zh-hk)(繁 > 簡)記憶體 > 内存 (zh-cn)布殊 > 布什 (zh-cn)資料庫 > 数据库(zh-cn).........
▪PHP 模拟$_PUT实现代码
PHP里有$_GET,$_POST,但是没有$_PUT,所以如果需要使用它的话,则你不得不自己模拟一下: 代码如下: $_PUT = array(); if ('PUT' == $_SERVER['REQUEST_METHOD']) { parse_str(file_get_contents('php://input'), $_PUT); } .........
[1]php下获取客户端ip地址的函数
来源: 互联网 发布时间: 2013-11-30
代码如下:
function getip() {
$IP=getenv('REMOTE_ADDR');
$IP_ = getenv('HTTP_X_FORWARDED_FOR');
if (($IP_ != "") && ($IP_ != "unknown")) $IP=$IP_;
return $IP;
}
下面这个比较好的
代码如下:
function getIP()
{
if (isset($_SERVER)) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")) {
$realip = getenv( "HTTP_X_FORWARDED_FOR");
} elseif (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
[2]PHP 中文简繁互转代码 完美支持大陆、香港、台湾及新加坡
来源: 互联网 发布时间: 2013-11-30
例子:(简 > 繁)面包 > 麵包 (zh-tw)寮国 > 老撾 (zh-hk)中国人寿 > 中國人壽 (zh-hk)罗纳尔多 > 朗拿度 (zh-hk)(繁 > 簡)記憶體 > 内存 (zh-cn)布殊 > 布什 (zh-cn)資料庫 > 数据库(zh-cn)使用方法
1. 下载 MediaWiki: (http://www./codes/25190.html),解压在路径如:/var/lib/mediawiki-1.13.3
2. 下载 mediawiki-zhconverter(上面的文件已经集成了),解压及把 mediawiki-zhconverter.inc.php 复制到你 PHP 程序中
3. 在你的程序中设置 MediaWiki 路径, 及引用 mediawiki-zhconverter
define("MEDIAWIKI_PATH", "/var/lib/mediawiki-1.14.0/");require_once "mediawiki-zhconverter.inc.php";4. 作出转换
/* MediaWikiZhConverter::convert( "字词", "转换目标"); 转换目标可选值为 zh, zh-cn, zh-tw, zh-sg, zh-hk*/echo MediaWikiZhConverter::convert("面包", "zh-tw");echo MediaWikiZhConverter::convert("記憶體", "zh-cn");echo MediaWikiZhConverter::convert("罗纳尔多", "zh-hk");5. 完成
支持版本
下列MediaWiki 版本已证实可以兼容本程式 (http://download.wikimedia.org/mediawiki):
PHP4: 1.6.10, 1.6.11
PHP5: 1.12.0, 1.13.3
如非必要,请使用 PHP5 版本。
打包下载地址http://xiazai.http://www./codes/25190.html
1. 下载 MediaWiki: (http://www./codes/25190.html),解压在路径如:/var/lib/mediawiki-1.13.3
2. 下载 mediawiki-zhconverter(上面的文件已经集成了),解压及把 mediawiki-zhconverter.inc.php 复制到你 PHP 程序中
3. 在你的程序中设置 MediaWiki 路径, 及引用 mediawiki-zhconverter
define("MEDIAWIKI_PATH", "/var/lib/mediawiki-1.14.0/");require_once "mediawiki-zhconverter.inc.php";4. 作出转换
/* MediaWikiZhConverter::convert( "字词", "转换目标"); 转换目标可选值为 zh, zh-cn, zh-tw, zh-sg, zh-hk*/echo MediaWikiZhConverter::convert("面包", "zh-tw");echo MediaWikiZhConverter::convert("記憶體", "zh-cn");echo MediaWikiZhConverter::convert("罗纳尔多", "zh-hk");5. 完成
支持版本
下列MediaWiki 版本已证实可以兼容本程式 (http://download.wikimedia.org/mediawiki):
PHP4: 1.6.10, 1.6.11
PHP5: 1.12.0, 1.13.3
如非必要,请使用 PHP5 版本。
打包下载地址http://xiazai.http://www./codes/25190.html
[3]PHP 模拟$_PUT实现代码
来源: 互联网 发布时间: 2013-11-30
PHP里有$_GET,$_POST,但是没有$_PUT,所以如果需要使用它的话,则你不得不自己模拟一下:
$_PUT = array();
if ('PUT' == $_SERVER['REQUEST_METHOD']) {
parse_str(file_get_contents('php://input'), $_PUT);
}
通过php://input得到的数据是raw data,所以需要用parse_str解析一下。
不过需要说明的是,当表单是enctype="multipart/form-data"类型的时候(就是上传文件那种类型),这种方法是无效的(此时php://input为空),一旦PHP发现请求的Content-Type是multipart/form-data,就会无条件的代你处理表单数据,然后保存到$_FILES里,此时无法得到raw data,只能用一些偏门方法,以apache为例,修改httpd.conf(为了使用RequestHeader语法,请先激活header模块):
<Location "/demo.php">
RequestHeader set Content-Type foobar
</Location>
通过重置Content-Type请求头为foobar(只要不是multipart/form-data即可),此时php://input就有数据了,不过原本应有的$_FILES数据却不存在了,所以基本上只有演示上的意义,如果想得到raw data,只能自己根据数据生成,在PEAR里有类似的实现:HTTP_Request2_MultipartBody。
浏览器一般只允许使用GET/POST方法,虽然可以通过JS来发送PUT方法,但是还得编写代码,相对而言,使用命令行下的CURL命令则显得方便很多,在开发测试时很有用,所以学习一下还是必要的:
curl -X PUT http://www.domain.com/demo.php -d "id=1" -d "title=a"
这样就会通过PUT方法发送id, title数据,测试时demo.php的代码就类似上面的php://input,不细说了。
补充:注意php.ini里的always_populate_raw_post_data设置。
代码如下:
$_PUT = array();
if ('PUT' == $_SERVER['REQUEST_METHOD']) {
parse_str(file_get_contents('php://input'), $_PUT);
}
通过php://input得到的数据是raw data,所以需要用parse_str解析一下。
不过需要说明的是,当表单是enctype="multipart/form-data"类型的时候(就是上传文件那种类型),这种方法是无效的(此时php://input为空),一旦PHP发现请求的Content-Type是multipart/form-data,就会无条件的代你处理表单数据,然后保存到$_FILES里,此时无法得到raw data,只能用一些偏门方法,以apache为例,修改httpd.conf(为了使用RequestHeader语法,请先激活header模块):
代码如下:
<Location "/demo.php">
RequestHeader set Content-Type foobar
</Location>
通过重置Content-Type请求头为foobar(只要不是multipart/form-data即可),此时php://input就有数据了,不过原本应有的$_FILES数据却不存在了,所以基本上只有演示上的意义,如果想得到raw data,只能自己根据数据生成,在PEAR里有类似的实现:HTTP_Request2_MultipartBody。
浏览器一般只允许使用GET/POST方法,虽然可以通过JS来发送PUT方法,但是还得编写代码,相对而言,使用命令行下的CURL命令则显得方便很多,在开发测试时很有用,所以学习一下还是必要的:
curl -X PUT http://www.domain.com/demo.php -d "id=1" -d "title=a"
这样就会通过PUT方法发送id, title数据,测试时demo.php的代码就类似上面的php://input,不细说了。
补充:注意php.ini里的always_populate_raw_post_data设置。
最新技术文章: