php正则匹配中文

2009年12月10日 yanglu 2 条评论

php正则匹配中文的方法:

$str = "04aol汉字";
$pattern = "/^(\d{2})([A-Za-z]{3})([".chr(0xa1)."-".chr(0xff)."]+)$/";
if(preg_match($pattern, $str, $tmp))
{
  var_export($tmp);
}

显示结果:

array (
  0 => '04aol汉字',
  1 => '04',
  2 => 'aol',
  3 => '汉字',
)
分类: PHP 标签: ,

ignore_user_abort实现计划任务

2009年11月24日 yanglu 6 条评论

ignore_user_abort,这个函数可以帮助我们实现像linux中的cron一样实现计划任务,用户关掉浏览器后还可以执行。
使用方法:先使用函数set_time_limit(0)设置程序的执行时间为无限制。
例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
// Ignore user aborts and allow the script
// to run forever
ignore_user_abort(true);
set_time_limit(0);
 
echo 'Testing connection handling in PHP';
 
// Run a pointless loop that sometime 
// hopefully will make us click away from 
// page or click the "Stop" button.
while(1)
{
    // Did the connection fail?
    if(connection_status() != CONNECTION_NORMAL)
    {
        break;
    }
 
    // Sleep for 10 seconds
    sleep(10);
}
 
// If this is reached, then the 'break' 
// was triggered from inside the while loop
 
// So here we can log, or perform any other tasks
// we need without actually being dependent on the 
// browser.
?>
分类: PHP 标签:

phpCB批量转换php文件视图

2009年11月13日 yanglu 2 条评论

  最近需要整理一个整站的php代码规范视图,前几天发现phpCB整理视图非常好,但有个缺点是不能批量处理,使用过程中发现phpCB是一个CMD程序,马上就想到php的system函数调用cmd,想到就做,下面是phpCB批量转换的php程序:
阅读全文…

分类: PHP 标签:

php格式化代码视图工具-phpCodeBeautifier

2009年11月4日 yanglu 1 条评论

  用phpCodeBeautifier工具可以帮你格式化代码视图,规范代码缩进习惯,很实用的一个工具。

  用法:DOS窗口打开phpCodeBeautifier工具目录,语法格式为:

phpCB.exe [options] [filename] 

   阅读全文…

分类: PHP 标签:

php配置变量写入配置文件的方法

2009年10月30日 yanglu 3 条评论

有些常用的配置变量写入MYSQL比较麻烦,可以写入一个php配置文件,在需要的地方引入这个配置文件即可。写入方法如下(摘入):

$configfile = @file_get_contents('./config.inc.php');
			$configfile = trim($configfile);
			$configfile = preg_replace("/[$]dbhost\s*\=\s*[\"'].*?[\"'];/is", "\$dbhost = '$dbhost';", $configfile);
			$configfile = preg_replace("/[$]dbuser\s*\=\s*[\"'].*?[\"'];/is", "\$dbuser = '$dbuser';", $configfile);
			$configfile = preg_replace("/[$]dbpw\s*\=\s*[\"'].*?[\"'];/is", "\$dbpw = '$dbpw';", $configfile);
			$configfile = preg_replace("/[$]dbname\s*\=\s*[\"'].*?[\"'];/is", "\$dbname = '$dbname';", $configfile);
			$configfile = preg_replace("/[$]adminemail\s*\=\s*[\"'].*?[\"'];/is", "\$adminemail = '$adminemail';", $configfile);
			$configfile = preg_replace("/[$]tablepre\s*\=\s*[\"'].*?[\"'];/is", "\$tablepre = '$tablepre';", $configfile);
			$configfile = preg_replace("/[$]cookiepre\s*\=\s*[\"'].*?[\"'];/is", "\$cookiepre = '".random(3)."_';", $configfile);
 
			@file_put_contents('./config.inc.php', $configfile);
分类: Discuz!, PHP 标签: ,

DZ获取客户端IP的方法

2009年10月30日 yanglu 1 条评论

discuzs是一款不错的php开源社区软件,很多优秀的代码可以拿来借鉴。下面是从common.inc.php中提取出来的获取客户端IP的代码。

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'];
}
分类: Discuz!, PHP 标签: ,

新女人新价值 自己认为最好才是最好

2009年9月29日 yanglu 7 条评论


payeasy的广告片 转自iseeyou

分类: 个人杂谈 标签:

PHP文件下载 浏览器显示文件名乱码问题

2009年9月29日 yanglu 1 条评论
<?php 
$filename = "下载文件名";
$filesize = filesize('文件地址'); //获得文件大小 
header('Pragma: public'); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT'); 
header('Cache-Control: no-store, no-cache, must-revalidate'); 
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); 
header('Content-Transfer-Encoding: binary');
header('Content-Encoding: none'); 
header('Content-type: application/force-download'); 
header('Content-Disposition: attachment; filename="'.$filename.'"'); 
header('Content-length: '.$filesize);
?>

这样在弹出文件下载框时,显示的文件名在不同的浏览器下面是不一样的。有的是乱码,有的是空白。
所以文件名统一使用utf-8编码,然后针对ie浏览器进行一次rawurlencode编码。
把以下代码放在header之前

if (preg_match(/MSIE/,$_SERVER['HTTP_USER_AGENT'])) {
        $filename = rawurlencode($filename);
}
分类: PHP, 网页制作 标签: ,

腾讯域名企业邮箱服务公测

2009年9月11日 yanglu 2 条评论

9月10日,腾讯邮箱已对外开放“域名邮箱”功能的体验,用户可将自己的域名作为邮箱后缀,免费开通属于自己的邮局,设置独一无二的个性邮箱。

腾讯域名邮箱服务

腾讯域名邮箱服务

据了解,域名邮箱是腾讯公司推出的一项个性化邮件服务。如果您拥有域名,只需要通过简单的设置,就能够创建以您域名作为邮箱后缀的邮箱。自定义喜欢的帐户名和邮箱的标志图案,您创建的域名邮箱帐户名可以随意指定了,不用担心喜欢的用户名被抢注的问题。用户只需访问domain.mail.qq.com就可以马上创建域名邮箱,用户也可以在登录qq邮箱后,在“设置”中的“体验室”找到域名邮箱服务的入口。

演示:http://mail.qq.com/domain/yanglu.org

分类: 个人杂谈 标签:

网站换域名后要用到的php301转向代码

2009年9月7日 yanglu 3 条评论

只需要把下面的代码加到网站核心文件里,即可对全站的所有页面进行域名301转向,友好搜素引擎转向。

$url_old="yanglu.org"; //旧域名,不带"http://"和"/",可不带www
$url_new="www.1qq.cn/"; //新域名,不带"http://",以"/"结尾
$bbs_dir="bbs"; //原域名的BBS目录名,根目录请为空
 
if ($bbs_dir)
{
	$bbs_count=strlen($bbs_dir)+2;
	$url_add=substr($_SERVER["REQUEST_URI"],$bbs_count);
} else {  
	$url_add=substr($_SERVER["REQUEST_URI"],1); 
}
 
if (stripos($_SERVER["SERVER_NAME"],$url_old))
{	
	$url301="http://".$url_new.$url_add; 
	header("HTTP/1.1 301 Moved Permanently"); 
	header("Location:$url301"); 
	exit();
}

以DISCUZ!(所有版本)为例,只需要把此代码放置于include/common.inc.php的”<?”后面即可。

分类: Discuz!, PHP, SEO技术 标签: