易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : php

[转]深入理解PHP之require/include顺序


作者: laruence(http://www.laruence.com
)
本文地址: http://www.laruence.com/2010/05/04/1450.html
转载请注明出处
在大型的Web项目中, include_path是一个模块化设计的根本中的根本(当然,现在也有很多基于autoload的设计,
这个不影响本文的探讨), 但是正是因为include_path, 经常会让我们遇到一些因为没有找到正确的文件而导致的看似”诡异”的问题.
也就有了如下的疑问:
include_path是怎么起作用的?
如果有多个include_path顺序是怎么样的?
什么情况下include_path不起作用?
今天, 我就全面的介绍下这个问题, 先从一个例子开始吧.
如下的目录结构:
root
├ 1.php
├ 3.php
└ subdir
├ 2.php
└ 3.php
在1.php中:
<?php
ini_set
(
"include_path"
,
".:path_to_subdir"
);
require
(
"2.php"
);
?>
而在2.php中:
<?php
require
(
"3.php"
);
?>
而在root目录下的3.php打印出”root”, 在subdir目录下的3.php打印出”subdir”;
现在, 我的问题来了:
1. 当在root目录下运行1.php, 会得到什么输出?
2. 在subdir下 ......

php 函数

htmlspecialchars()    
函数把一些预定义的字符转换为 HTML 实体。
      ENT_COMPAT - 默认。仅编码双引号。
          eg:" (双引号) 成为 &quot;
implode()    
函数把
数组元素组合为一个字符串。

         语法:implode(separator,array)
               
separator
   可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
               
array
        必需。要结合为字符串的数组。
                     eg:
                      &n ......

PHP中文乱码解决办法


一.         首先是PHP网页的编码
1.     php文件本身的编码与网页的编码应匹配
a.     如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b.     如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用 session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总 是删除,再保存就可以去掉BOM信息了。
2.     php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
二.&nbs ......

php 5.3 连接mssql数据库

最近有个小东西要查看mssql数据库是用php实现的,以前我用php5.2时感觉挺简单的所以想php5.3也应该很简单的
为什么要用php5.3呢因为我想用sqlite3.0的啊,因为php5.2的不支持sqlite3.0的啊,所以我特意去下了5.3了下载回来了才发现5.3里没有mssql的dll扩展了,郁闷啊,不管这么多先用起那sqlite3.0再说了
sqlite3.0的部分程序基本写完了,现在要开始连接mssql数据库了,我想没有mssql那就用odbc吧,靠连odbc也找不到啊,只有pdo_odbc的,没有办法了那就用pdo_odbc了,怎么连接还没有用过呢,直接查php的手册,根据手册是的实例连接一下发现有问题啊
竟然说没有odbc驱动啊,怎么回事啊,搞了一会没有整明白,算了直接用微软对php扩展两家sqlserver的吧,是SQLServerDriverForPHP11下载了安装一下,其实就是自解压的压缩包啊,根据自己对应的php版本的sqlserverdriver的dll拷贝到ext目录下然后在php.ini中加一下 extension=php_sqlsrv_53_nts_vc9.dll 加载失败,郁闷啊,后来看了我的php版是php-5.3.2-Win32-VC9-x86.zip不是nts(这个好像是非线程安全吧)我就换了个extension=php_sqlsrv_53_ts_vc9.dll 没有报错了,看来应该可以了吧,根据这下载驱动文档看看怎么连接数据库 ......

php 5.3 连接mssql数据库

最近有个小东西要查看mssql数据库是用php实现的,以前我用php5.2时感觉挺简单的所以想php5.3也应该很简单的
为什么要用php5.3呢因为我想用sqlite3.0的啊,因为php5.2的不支持sqlite3.0的啊,所以我特意去下了5.3了下载回来了才发现5.3里没有mssql的dll扩展了,郁闷啊,不管这么多先用起那sqlite3.0再说了
sqlite3.0的部分程序基本写完了,现在要开始连接mssql数据库了,我想没有mssql那就用odbc吧,靠连odbc也找不到啊,只有pdo_odbc的,没有办法了那就用pdo_odbc了,怎么连接还没有用过呢,直接查php的手册,根据手册是的实例连接一下发现有问题啊
竟然说没有odbc驱动啊,怎么回事啊,搞了一会没有整明白,算了直接用微软对php扩展两家sqlserver的吧,是SQLServerDriverForPHP11下载了安装一下,其实就是自解压的压缩包啊,根据自己对应的php版本的sqlserverdriver的dll拷贝到ext目录下然后在php.ini中加一下 extension=php_sqlsrv_53_nts_vc9.dll 加载失败,郁闷啊,后来看了我的php版是php-5.3.2-Win32-VC9-x86.zip不是nts(这个好像是非线程安全吧)我就换了个extension=php_sqlsrv_53_ts_vc9.dll 没有报错了,看来应该可以了吧,根据这下载驱动文档看看怎么连接数据库 ......

php字符串比较用==的一个教训

一直认为php中字字符串比较直接用==来判断还是很方便的,但今天遇到的一个问题,彻底让我明白了使用strcmp的必要性.这个问题很多老手都可能会忽略的.
今天在登录自己做的程序时,在输入验证码后,想直接按小键盘上回车登录(程序检查了回车事件),结果按回车按成了键盘上回车键旁边小数的那个键,验证码栏就多输入了一个点。由于点很小,我就没注意,再按了一次回车,居然验证码验证成功了。这不见鬼了吗?于是退出再试了一次,多输入一个点,居然的确可以验证通过。果然有问题!但多输2个点,则验证通不过了。
大汗之下,发现是验证用了==。难道字符串==会忽略最后的那个点?
于是做了个实验。
$aa = '3306.';//多个点
$b = '3306';
if($aa == $b) echo "相等哦";
果然得到的结果是相等。
用恒等 === 则 不会得到相等的结论.
用strcmp()也不会得到相等的结论.
于是立刻修正编码规范,禁止使用 == 作为字符串相等比较.改用strcmp();
至于为何 == 会忽略那个点.尚不得知. ......

php的session用法小结

 session是网站保存用户信息的一种手段,应用相当广泛。例如第五届排行榜就使用了session。经过对第五届排行榜的修改,我总结了一下php中session的用法。
(一)开始session
  在每一次使用session之前,都要加上这一句:“session_start();”。顾名思义,这个函数的作用就是开始使用session。
(二)注册session
  首先要建立一个global(注意,一定要定义为global,不然在其它页面用不了)数组,如$login,其中$login['name']="Victor",$login['pwd']="111111",然后调用函数“session_register(login);”,session就成功注册了。
(三)使用session里面的变量
  和注册session类似,都要先建立一个global数组,然后就和使用一般数组一样了。
(四)判断session是否注册
  很简单,用“if (session_is_registered(login))”判断就可以了。
(五)卸载session
  也很简单,“session_unregister(login);”就可以了。
  注意:在进行(二)(三)(四)(五)之前一定要先进行(一)。
下面给出一个例子:
index.htm
<html>
<head>
<title>测试</title> ......
总记录数:2174; 总页数:363; 每页6 条; 首页 上一页 [26] [27] [28] [29] 30 [31] [32] [33] [34] [35]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号