存档: ‘网页制作’ 分类

ignore_user_abort实现计划任务

6 条评论 2009年11月24日

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.
?>

phpCB批量转换php文件视图

2 条评论 2009年11月13日

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

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

1条评论 2009年11月4日

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

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

phpCB.exe [options] [filename] 

   继续阅读…

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

3 条评论 2009年10月30日

有些常用的配置变量写入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);

DZ获取客户端IP的方法

1条评论 2009年10月30日

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'];
}

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

1条评论 2009年9月29日
<?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);
}

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

4 条评论 2009年9月7日

只需要把下面的代码加到网站核心文件里,即可对全站的所有页面进行域名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的”<?”后面即可。

jQuery插件jquploader文件地址返回的问题

4 条评论 2009年9月5日

最近一直在学习jQuery的应用,用过之后才知道:jQuery确实很强大,正如它的宗旨一样——”write less,do more.”,写更少的代码做更多的事情。

 jQuery的扩展插件非常之多,很多应用都可以用插件来实现。最近正在做一个视频上传的功能,考虑到视频文件体积一般都很大,选用ajax文件上传是个不错的方案,最后找到jquploader这个插件。经过调试后上线成功,现在遇到的难题是:使用jquploader上传文件后怎么返回经php处理过的文件地址?困惑了很久,用google找了很久也只找到相同问题没找到解答,哪位兄弟要是知道麻烦帮我解惑下啊。

给IMG标签应用label时失效的解决方法

5 条评论 2009年8月26日

  为了给用户一个好的体验,现在在设计单选框(radio)和复选框(checkbox)时都会给选择文字加上label增大选择范围,以提高用户体验,但最近在给单独的图片加label时才发现居然在ie5.5-ie8中都无法成功。经搜索找到解决方法,但网上提供的都是JS解决方案,很复杂。其实有个更简单方法:给图片img标签加上disabled即可,简单吧!呵呵。

如<img src=”images4/stars5.gif” width=”78″ height=”15″ disabled>

WordPress垃圾评论特征收集

13 条评论 2009年8月4日

最近老外发垃圾评论越来越勤,本人博客每天才百来个IP,垃圾评论却有上百个,大有上升趋势。而我又不想用评论安全问答类似的插件,所以只好通过已有垃圾评论来收集他们的特征字符加入黑名单,然后偶尔清空下垃圾评论就大致清净了。

博友们,把你们收到的垃圾评论特征找出来,让大家共享这份黑名单,坚决打击垃圾评论!

垃圾评论特征字符如下引用:(当评论的内容、评论者名称、URL、电子邮件或者 IP 中包含这些关键字时将会被标记为垃圾评论。每个关键字或 IP 隔行书写。关键字是匹配包含的,例如 “press” 将匹配 “WordPress”。)

继续阅读…