名:I Love China
组织:I Love China
注册码:NAVN-2QJ2-YZA9-46N6
php截取中文字符串
function SubChineseStr($string, $sublen, $start = 0, $code = 'UTF-8')
{
$string=strip_tags($string);
if($code == 'UTF-8')
{
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) – $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."…";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i<$strlen; $i++)
{
if($i>=$start && $i<($start+$sublen))
{
if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)<$strlen ) $tmpstr.= "…";
return $tmpstr;
}
}
php strtotime() 将date转化成 Unix 时间戳
strtotime()
定义
strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
用法
可以将date格式转化成Unix时间戳格式
<?php
//date形式
$time = "2011-11-1";
$time = strtotime($time);
echo $time;
//其他字符串形式
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday"));
?>
相关文章
如何把纯真ip数据库导入到MySQL数据表中
一、下载最新版的QQWry.Dat
二、下载IPLook
使用IPLook把QQWry.Dat文件解压到IPData.txt文件
打开IPData.txt文件格式是这样的
0.0.0.0 0.255.255.255 IANA保留地址 CZ88.NET
1.0.0.0 1.0.0.255 澳大利亚 CZ88.NET
1.0.1.0 1.0.3.255 福建省 电信
1.0.4.0 1.0.7.255 澳大利亚 CZ88.NET
1.0.8.0 1.0.15.255 广东省 电信
1.0.16.0 1.0.31.255 日本 CZ88.NET
1.0.32.0 1.0.63.255 广东省 电信
1.0.64.0 1.0.127.255 日本 CZ88.NET
1.0.128.0 1.0.255.255 泰国 CZ88.NET
1.1.0.0 1.1.0.255 福建省 电信
1.1.1.0 1.1.1.255 澳大利亚 CZ88.NET
三、使用Navicat for MySQL工具
1.建立ip数据库表
CREATE TABLE `ip` (
`StartIP` varchar(20) default '',
`EndIP` varchar(20) default NULL,
`Country` varchar(30) default NULL,
`Local` varchar(50) default NULL,
KEY `IP` USING BTREE (`StartIP`,`EndIP`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2.使用Navicat for MySQL的导入向导功能把IPData.txt文件的数据导入到ip数据表中
四、如何在MySQL中对ip比较
select * from ip where INET_ATON('119.253.32.42') between INET_ATON(startIp) and INET_ATON(endIp);
php如何获取当前网址/URL
//获取当前URL
function get_current_page_url(){
$current_page_url = 'http';
if ($_SERVER["HTTPS"] == "on") {
$current_page_url .= "s";
}
$current_page_url .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$current_page_url .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$current_page_url .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $current_page_url;
}
函数说明:
1.可以获取http:// 和 https:// 两种协议的网址
2.可以获取80端口和非80端口的网址
php获取ip的方法
function getonlineip($format=0) {
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);
$onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
if($format) {
$ips = explode('.', $_SGLOBAL['onlineip']);
for($i=0;$i<3;$i++) {
$ips[$i] = intval($ips[$i]);
}
return sprintf('%03d%03d%03d', $ips[0], $ips[1], $ips[2]);
} else {
return $onlineip;
}
}
php递归方式的对变量中的特殊字符进行转义
函数主要用于转义$_GET,$_POST等变量
/**
* 递归方式的对变量中的特殊字符进行转义
*
* @access public
* @param mix $value
*
* @return mix
*/
function addslashes_deep($value)
{
if (empty($value))
{
return $value;
}
else
{
return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);
}
}
一、函数主要了addslashes方法
addslashes() 函数在指定的预定义字符前添加反斜杠。
这些预定义字符是:
•单引号 (')
•双引号 (")
•反斜杠 (\)
•NULL
二、array_map说明
array_map() 函数返回用户自定义函数作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
如果传递进来的参数 是数组形式则使用array_map方法进行参数的转义。
Drupal node.tpl.php 中可用的模板变量
这个模板文件控制着节点的输出,和节点摘要的输出.它仅能影响page.tpl.php中的$content变量。
在这个模板里,有以下变量可供使用:
$content: 返回节点的主体部分。
$date: 返回节点被创建的格式化日期。
$taxonomy: 返回由节点的分类词语构成的数组。
$terms: 返回与该节点相关的分类单词的HTML。
$title: 返回节点的标题。
$submitted: 返回”Submitted by”文本。
$links: 返回与节点相关的链接,比如”read more”或者”add comment”。
$name: 返回创建该页面的用户名。
$node: 返回整个节点对象和它的所有属性。
$node_url: 返回该节点的URL。
$page: 当为body视图方式时其值为真,当为teaser视图方式时其值为假。
$picture: 如果启用了图像并且设置了用户图像则返回用户图像的HTML。
$teaser: 返回一个布尔值,用来决定是否展示teaser。当它为假时,节点以body方式展示;为真时,以teaser方式展示。
Drupal page.tpl.php 模板变量
Page.tpl.php是负责网页布局的模板,这个模板控制整个页面的主框架。
在这个模板里,有以下变量可供使用:
$base_path: Drupal安装的基本路径。
$directory: 返回主题所在的相对路径。
通常使用$directory和$base_path组成主题的绝对路径,类似这样使用:
< ?php print $base_path . $directory ?>
$head: 返回头部的HTML。
$head_title: 返回页面标题。
$title: 返回主内容的标题。与$head_title不同,当察看一个单独节点页面时,$title就是节点的标题。
$css: 返回一个css文件组成的数组。
$styles: 来返回$css数组的HTML版本。
$scripts: 返回js文件组成的数组或内容。
$logo: 返回logo的路径,在启用主题的主题配置页面定义。
$site_name: 返回站点的名称。在Site information中设置。
$site_slogan: 返回站点的标语。在Site information中设置。
$primary_links: 返回一个包含了一级链接的数组。
$secondary_links: 返回一个包含了二级链接的数组。
$content: 返回HTML内容。
$node: 返回整个节点对象,当察看一个单独节点页面时可用。
$breadcrumb: 返回面包屑,就是访问足迹
$tabs: 返回用于为节点展示View/Edit的HTML标签。
$mission: 返回站点使命文本,在 Site information中输入,只有在首页才可以使用。
$messages: 返回的验证错误或正确的提示信息,通常显示在页面的头部。
$search_box: 返回搜索表单的HTML。
$layout: 这一变量允许你定义外观不同类型的风格,而变量$layout的值依赖于启用的工具条(sidebars)的数量。可能的值包括:none, left,right, and both。
$help: 返回帮助文本,大多用于管理页面。
$is_front: 如果当前为首页其值为真TRUE。
$language: 返回站点所使用的语言。
$feed_icons: 返回该页面的RSS链接。
$footer_message: 返回页脚信息文本,在Site information中可以修改。
$closure: 返回hook_footer()的输出,常用于页面底部。
php func_get_args 获取参数列表
function theme() {
$args = func_get_args();
return $args;
}
print_r(theme('a','b','c'));
输出:
Array
(
[0] => a
[1] => b
[2] => c
)