简单生活

Simple life , it's as easy as 1,2,3...

网站使用CDN后Apache网站日志来源IP修正

因为网站服务器是美国的VPS,为什么选用美国的VPS?1、不用备案;2、便宜。

VPS 使用 Centos + Kloxo,Kloxo安装容易,配置简单,可以在apache和lighttpd之间切换,完全可以满足我的需求。简而言之,好用。

VPS远在大洋彼岸,速度自然快不动啊哪里去,对网站使用了CDN,速度有明显的提升。但是,对网站使用了CDN后,apache日志记录的来源IP就是CDN服务器的IP,这样很不利于追踪分析网站日志。

kloxo的 httpd.conf 位于 /etc/httpd/conf/httpd.conf。

阅读全文...

PHP判断字符串中是否含有中文

自从有了黑帽SEO,对付SPAM(垃圾留言)一直是网站工作人员的工作内容之一。迫害我们的不是垃圾留言群发机,就是垃圾用户注册机。

判断字符串中是否含有中文是对付SPAM的方法之一,可以有效的阻止纯英文的垃圾留言,还可以用这个方法规范用户注册。看下面的代码,兼容gb2312和utf-8。

<?
$str = "测试中文";
echo $str;
echo "<hr>";
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情况下使用
//if (preg_match("/^[\x7f-\xff]+$/", $str)) { //兼容gb2312,utf-8 //判断字符串是否全是中文
if (preg_match("/[\x7f-\xff]/", $str)) { //判断字符串中是否有中文
echo "正确输入";
} else {
echo "错误输入";
}
?>

阅读全文...

在VPS上安装PHP加速器eAccelerator

1、PHP加速器 eAccelerator 简介

eAccelerator是一个开源php加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。

官方主页: http://eaccelerator.net

2、在VPS上的安装和配置

以下操作在ssh中进行。先查看有没有安装make模块,大部分都安装了,没有的,先安装make模块:

yum install make

输入以下命令,逐行运行。下载 - 解压 - 切换目录 - 配置编译安装 - 切换到根目录 - 删除 - 创建缓存目录 - 修改缓存目录的权限。

阅读全文...

PHP自定义函数实现JavaScript escape编码

中文字符在JSON中是无法处理的,使用的后果一定是乱码伺候,通常我们用JavaScript的escape函数对中文进行编码转换,比如cookie中的用户名。

有些情况下,为了保持程序的一致性,我们需要在PHP中对中文字符进行escape编码,而PHP本身是没有escape函数的,于是便诞生了一些PHP中的自定义函数实现escape编码。

上面被我成功用在 phpcms2008 的 ucenter api 接口文件中,解决了我的一个不大不小的问题。

phpcms2008(v9已经发布了,为了区分,先把版本号写上,后面还是用简称)使用ucenter与其他程序整合后,从其他程序同步登陆到phpcms,顶部用户名会出现乱码。而从phpcms登陆则没有这个问题。

查看了相关源码,发现在phpcms中用户登陆是使用 images/js/common.js 中的setcookie函数来设置cookie,而同步登陆是使用 api/uc.php 设置cookie,80行找到以下代码...

阅读全文...

删除MySQL数据库中特定前缀的表

打开我的另一个网站的mysql数据库看了一下,一个库里竟然有750多张表格,关键是有很多是没有用的空表格。其实也没有太大的关系,主要就是管理起来不太方便。700多个表格不是一下子就可以打开phpMyAdmin管理的,会很慢甚至打不开。

于是找来下面的代码,删除特定前缀的表。

折叠-PHP代码复制内容到剪贴板
  1. <?php    
  2. /*xuanfunction 删除数据库中有特定前缀的表  
  3.  *$dbname 数据库名  
  4.  *$tableflag 表前缀,这里标志出是哪一个用户,如表s00002_goods前缀为s00002  
  5.  */  
  6. function deldata($dbname,$tableflag){   
  7. $db_host   = 'localhost';   
  8. $db_port    = '3306';   
  9. $db_user    = 'user';   
  10. $db_pass    = 'pass';   
  11. $connect =mysql_connect($db_host,$db_user,$db_pass);   
  12. mysql_select_db($dbname);   
  13. $result = mysql_query("show table status from $dbname",$connect);   
  14. $data=mysql_fetch_array($result);   
  15.     while($data=mysql_fetch_array($result)) {   
  16.     $table=mysubstr($data[Name],"_");//截取当前表的下划线以前的字符串得到表前缀   
  17.         if($table==$tableflag){ //判断截取的前缀是否等于自己需要的前缀$tableflag,如果是就删除该表   
  18.         //测试之用   
  19.         /*echo $data[Name];  
  20.         echo "<br>";  
  21.         echo $table;  
  22.         echo "<br>";*/  
  23.         mysql_query("drop table $data[Name]");   
  24.         }   
  25.     }   
  26.     return true;   
  27. }   
  28.   
  29. /*截取某个特定字符前的所有字符函数  
  30.  *$str 为待截取字符串   
  31.  *$flag 特定字符如“_”  
  32.  */  
  33. function mysubstr($str,$flag){   
  34. $pos=strpos($str,$flag);   
  35. return substr($str,0,$pos);   
  36. }   
  37. ?>   
  38.   
  39. <?php //test   
  40. $dbname="dbg0001";//数据库名   
  41. $tableflag="s000002";//要删除的表的前缀,有这个前缀的表才删除,标志出是哪一个用户   
  42. deldata($dbname,$tableflag);   
  43. //$test=mysubstr("s000002_account_log","_");   
  44. //echo $test;   
  45. ?>  

阅读全文...

PHP的未来 - Zeev Suraski访谈录

问: 为什么我们现在要升级到PHP5,而不是等到PHP6?

Zeev: 问得好。首先我们目前正处在发展中期:一面要支持PHP4的运作,另一面PHP6还没来。第二--我要很小心得表达下面的句子-- 从PHP5到PHP6之间的匹配性的壕沟是很大的。因为在Unicode编码上和语言中基本元素里的变化很可能会出现不匹配!我们在PHP6中所做的与其 说是”改进“,还不如说是”革命“。把不匹配性尽量降低是一项艰难的任务。也许我们会提供一些自动移植工具。

从PHP4跳到PHP6 比从PHP4升到PHP5然后升到PHP6痛苦多了!但问题出来了,我们就要解决它。我们正认真小心地进行处理,并从PHP5的推广中吸取经验教训,我们 还没做最后决定,但我们会尽力让从5到6的过渡尽可能平稳。目前来讲,等PHP6出来再升级毫无意义。PHP6至少要等一年后才有可能出来。

问: 我对PHP5发布时,对释放存在的OpCode-Caches方面没有明确的说法印象深刻。老是谈到这个问题是否它没解决好?

Zeev: 可能吧。刚推出时很多公司并没有用它,(所以并没重视)。但自从2004年PHP5出来后,很多公司开始使用,不管是开源的或商业的(OpCode-Caches产品),问题可能就出来了...OpCode-Caches在系统搭建时是很重要的。如果没用它,你也许要多用两台服务 器...

阅读全文...

PHP date()函数参数详解

time()函数在PHP中是得到一个数字,这个数字表示从1980-03-05到现在一共是多少秒,很奇怪,不过这样方便计算。
要找出前一天的时间就是 time()-60*60*24;
要找出前一年的时间就是 time()*60*60*24*365
那么如何把这个数字换成日期格式呢 ,就要用到date()函数了 

$t=time();
echo date("Y-m-d H:i:s" ,$t);

每一个参数的格式分别表示:
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"....

我现在要把字符串“1210909984”转换成只有月和日的格式,那么代码可以这样写 date("n-j",1210909984); ,转换后的结果是 5-16 ,具体是怎样算的我也不太清楚。

阅读全文...

根据时间段自动切换你的站点CSS风格

网站能切换几套CSS风格早已不是什么新鲜事了。大家也都知道怎么去弄。今天发现一个有意思的站点http://www.leemunroe.com/

同样是切换风格。不过他做了一点小小的调整。站点会根据当时的时间自动调整站点风格。作者为站点制作了早上、下午、夜晚三套皮肤,主要是分别制作了背景。12点以前系统会使用早上的皮肤,过了12点,站点会自动替换成下午的风格,5点后则替换成夜晚的风格。

早上
中午

阅读全文...

ASP PHP JSP 大比拼

目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。 

ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VBScript(Java script)作为自己的开发语言。 

PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http: file://www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。 

JSP是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病——脚本级执行(据说PHP4也已经在Zend的支持下,实现编译运行)。Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP——Java Server Page。Jsp可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。 

阅读全文...

分页:«1»
Powered By Z-Blog 1.8 Walle Build 91204
Copyright © 2007-2011 Wilf.cn. Some Rights Reserved