最近评论

google pr更新

今天查了下本博客的pr值,惊喜发现从0直接升为2.激动ing。半年了,终于有PR值了。

另,本博客已经被 Coodir中文网站目录 收录

IIS 6 的 PHP 最佳配置方法

 
虽然 LAMP 组合很不错,但是如果想要架设一台同时支持 PHP、ASP、ASP.NET、JSP、Perl 的 Web 虚拟主机服务器,还是用 Windows 2003 的 IIS 6 最好。网上有很多介绍在 IIS 6 上配置 PHP 的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级。
这里所说的升级,是指从某个 php4 版本升级到另一个 php4 版本,或者从某个 php5 版本升级到另一个 php5 版本,而不是指从 php4 升级到 php5。
准备:
1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6。
2、下载 windows 版的 PHP 二进制压缩包
安装:
解压缩 PHP 二进制压缩包到 C:\php 目录下(这里假设 C: 盘是系统盘,即安装了Windows 系统的盘,如果系统盘是 D: 盘,则解压缩到 D:\php 目录下,以此类推,下同)。
然后打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:
 
C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;
将 php.ini-dist 或 php.ini-recommended 复制到 C:\Windows 目录下,并改名为 [...]

Header函数前有输出的重定向问题

一般做PHP页面重定向时,会用到header函数的location属性,然而在header函数前面有输出时就会报错

比如

<?PHP   
echo   “hello“;   
header(“Location:http://www.********.com“);   
?>

解决的方法就是在这段代码前加上一个函数 ob_start();
代码如下:

<?PHP
ob_start();
echo   “hello“;   
header(“Location:http://www.********.com“);   
?>

引用一下资料:
自PHP4起,可以通过一些输出缓冲函数来解决这个问题。代价是把所有向浏览器的输出都缓存在服务器,直到下命令发送它们。可以在代码中使用 ob_start() 及 ob_end_flush() 来实现这样的功能,或者通过修改php.ini中的output_buffering配置选项来实现,也可以通过修改服务器配置文件来实现。
转载来源  http://www.zdyi.com/category/php-mysql/page/5

win2008 iis7 安装pear

安装环境:windows2008+php5.2.6+iis7
1、确认php目录下是否有pear/go-pear.phar。用install安装的php,没有pear/go-pear.phar,可以打开 http://pear.php.net/go-pear.phar ,把里面的内容复制另存到php目录pear/go-pear.phar 。
2.开始-运行-cmd-输入 php pear/go-pear.phar。没有把php目录加入环境变量的请先切换到该目录下。提示
Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :直接默认回车
显示
Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type ‘all’ to change all of them or simply press Enter to
accept these locations.
 1. Installation base ($prefix)                   : d:\php
 2. [...]

php基础测试 面试题

如何改进以下的这行php代码?这段代码可以被用来测试php工程师应聘者。
< ?
echo(”Search results for query: ” .$_GET[’query’] . “.”);
? >
这段代码非常适合用来测试一个php开发人员是否合格。因为这段代码并没有要求太多记忆上的东西(例如函数的记忆),但是对安全,性能,兼容性上都做了考察。
参考答案:
< ?php
if (isset($_GET[’query’]))
{
echo ‘Search results for query: ‘,
htmlspecialchars($_GET[’query’], ENT_QUOTES), ‘.’;
}
? >
改进的地方有 :
* 把php短标签(< ?)换成了长标签(< ?php),因为并非所有php环境都支持短标签
* 增加判断该全局变量是否存在,防止在某些环境下出现notice错误,而且在当前的例子里如果query无则没必要输出
* 把echo的”(”去掉,echo不是一个函数,没必要使用“(”
* 把字符串两边的双引号换成了单引号,提高了性能。因为双引号里的内容会被尝试进行变量和转义字符的解析。
* 对query这个get变量进行html过滤。防止输出html,这可能会带来包括xss在内的一些危险
* echo后面的字符串之间的间隔使用逗号而不是句号。因为句号之间的字符串会先被连接起来然后再输出,而,号只是按顺序输出。在这个例子里显然不需要先连接字符串。
看了以后发现自己是什么都懂,汗一个
转载来源 http://blog.licess.cn/archives/15/

truncate delete drop比较

注意:这里说的delete是指不带where子句的delete语句
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
    drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
   truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
  显然drop语句将表所占用的空间全部释放
  truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop>; truncate >; delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据

用rsync对网站进行镜像备份

Linux系统下超强远程同步备份工具Rsync使用详解
服务器之间常常要保持些文件或目录的一致,比如一些大的软件下载网站,它们通常使用多台服务器来提供下载服务。当一台服务器上的文件更新后,其它的服务器也需要更新,而且 在更新的时候应该是只对新增或是修改过的文件进行更新,否则会造成网络带宽和时间的浪费。rsync就是能有效的保持文件及目录的一致的优秀软件。
  rsync,remote synchronize
  顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。rysnc的官方网站:::URL::http://rsync.samba.org/,可以从上面得到最新的版本。当然,因为rsync是一款如此有用的软件,所以很多Linux的发行版本都将它收录在内了。你的Linux里并没有安装rsync,你可以按以下的安法自行安装:
  一、安装过程
  1.下载rsync
  目前(2003年9月)最新的rsync版本是2.5.6,从rysnc的官方网站上下载一个回来:
  # wget ::URL::http://ftp.samba.org/ftp/rsync/rsync-2.5.6.tar.gz
  2.解压
  # tar -xzpvf rsync-2.5.6.tar.gz
  3.编译安装
  # cd rsync-2.5.6/
  # ./configure –prefix=/usr/local/rsync
  # make
  # make install
  以上过程没有出现的话就安装好了,现在就有rsync命令可以用了,rsync命令放在
/usr/local/rsync/bin。用rsync命令可以去运行有rsync服务的服务器上抓取资料。
  如果要把当前的机器变成一台rsync服务器的话,就需要继续进行一些配置了。
  二、配置rsync服务
  配置一个简单的rsync服务并不复杂,你需要修改或建立一些配置文件。
  1.rsyncd.conf
  # vi /etc/rsyncd.motd
  rsyncd.con是rsync服务的主要配置文件,它控制rsync服务的各种属性,下面给出一个
rsyncd.conf文件的例子:
  #先定义整体变量
  secrets file = /etc/rsyncd.secrets
  motd file = /etc/rsyncd.motd
  read only = yes
  list = yes
  uid = nobody
  gid = nobody
  hosts allow = 192.168.100.90 #哪些电脑可以访问rsync服务
  hosts deny = 192.168.100.0/24 #哪些电脑不可以访问rsync服务
  max connections = 2
  log file = /var/log/rsyncd.log
  pid file = /var/run/rsyncd.pid
  lock file = /var/run/rsync.lock
  #再定义要rsync目录
  [terry]
  comment = Terry ’s [...]

兴业银行cib网上银行登陆或支付出现”Applet加密程序未完全下载,请重试”

登陆cib的网上银行时,提示”Applet加密程序未完全下载,请重试”
首先Java(微软)虚拟机是要安装的。 
已经安装的朋友把浏览器的安全级别调整为默认。(人没改的话,有些软件会修改安全级别)
重新登陆,bingo! 
总结了一下, 要想使用cib的任何网上业务, 必须要把浏览器的设置都搞为默认状态. 不然会出奇怪的错误

 

安装Oracle加载数据库错误areasQueries的解决

注意:安装时要保证Oracle安装目录不能带有中文字符
(如果第一次安装出现“加载数据库错误areasQueries”的错误,一般是因为Oracle安装目录带有中文字符的目录)
1. 停止所有关于Oracle的服务
2. 删除Oracle安装目录,主要分布在两个地方(如D盘跟目录下面以及C盘Program Files下面),删除时提示无法删除的错误,重新启动机器重新删除就可以了
3. 删除注册表里的内容
  HKEY_LOCAL_MACHINE\SOFTWARE删除Oracle目录
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services以Oracle开头的键值
注意:安装时要保证Oracle安装目录不能带有中文字符
如果已经安装了ArcSDE For Oracle,在删除Oracle键值的时候,不能删除带有ArcSDE关键字的键值,否则容易造成ArcSDE无法运行。
转载来源 http://www.cnitblog.com/stomic/archive/2008/10/21/50524.html

兼容IE与FF的图片切换特效

这段代码轮翻渐隐显示多张图片,可以为每张图片加上不同的链接,优点在于兼容IE和FF浏览器,代码写得十分工整,建议初学JS的用户研究下,百度联盟首页的特效!
 
<script>
var links = new Array();
links[1] = “http://www.websbook.net“;
links[2] = “http://www.websbook.net“;
links[3] = “http://www.websbook.net“;
links[4] = “http://www.websbook.net“;
var imgs = new Array();
for(var n = 1; n <= 5; n++) imgs[n] = new Image();
imgs[1].src = “http://union.baidu.com/img/tongji550.gif“;
imgs[2].src = “http://union.baidu.com/img/banner071031.jpg“;
imgs[3].src = “http://union.baidu.com/img/dataunion0711.jpg“;
imgs[4].src = “http://union.baidu.com/img/umaz13_550.jpg“;
var tits = new Array();
tits[1] =”百度统计”;
tits[2] = “联盟杯摄影师大赛”;
tits[3] = “百度行业报告”;
tits[4] = “联盟志”;
var imgwidth = 550;//图片宽度
var imgheight = 134;//图片宽度
var str = [...]