November 13, 2008
require和include基本的区别
"手册里是这么解释的:\nrequire() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。\n就是说再解析程序时即读取require的文件,而不是解析后,\n如果不能读取到被require的文件,就不能进行下一步动作。 所以,不被正确包含就会导致程序的文件,用require比较好。\n可能效率上也略微高点。 —————————————————————\nrequire() 无论如何都会包含文件,而 include() 可以有选择地包含:\na.php 一定会被包含,而 b.php 一定不会被包含。\n在PHP中include和require到底有什么区别呢?看这里的例子就知道了\n:include.php3的运行结果是: 这是inc1.inc文件中的一个变量的值! 这是inc2.inc文件中的一个变量的值! inc1.inc文件 …"
November 13, 2008
require和include经典一例抛析
"在php中,include和require的作用比较容易混淆。下面我以一个经典例子来深刻说明它们的区别。 当我们经常访问一个数据库时,可以把连库语句写成一个文件 con_db.php3\n在实际应用时,我们可以在程序中调用这个文件。 如require(“con_db.php3”)或include(“con_db.php3) 这时,两个函数的效果是差不多的。 但如果这样用 filename.php3\n文件到myfun处将不能继续执行,因为函数里无法得到外面的变量(include也是一样的)。除非把$dbh作为一个变量传给函数。这又增加了调用函数的复杂度。 我们可以通过把require或include放在函数里面来解决这个问题。 如果用include,文件的第一个函数调用处将顺利通过,但第二个调用将无法执行,原因是不能在没有关闭数据库时在打开一次,也就是说,con_db.php3执行了两次。将include换成require,一切都正常。 也就是说,require类似于一次预扫描,在程序执行时,无论在函数里或是函数外,都将先把require的文件执行,且只执行一次。而include则是每执行 …"
November 13, 2008
PHP的命名空间
"摘要:命名变量,函数和类是挺困难的,除了要考虑到变量的名称要易于理解,还要担心是否这个名称在其它某个地方已经使用过. 在一小段脚本中,第二个问题是基本问题. 当你考虑重用你的代码, 在这之后的项目代码必须避免使用你用过的命名. 通常来说,可重用的代码总是包含在函数或类中, 需要处理许多可能发生的命名冲突. 但函数和类之间也可能发生命名冲突. 你可以尝试避免出现这种情况,通过在所有类前添加前缀的方法,或者你可以使用namespace语句.\n标签: PHP命名空间 PHP\n命名变量,函数和类是挺困难的,除了要考虑到变量的名称要易于理解,还要担心是否这个名称在其它某个地方已经使用过. 在一小段脚本中,第二个问题是基本问题. 当你考虑重用你的代码, 在这之后的项目代码必须避免使用你用过的命名. 通常来说,可重用的代码总是包含在函数或类中, 需要处理许多可能发生的命名冲突. 但函数和类之间也可能发生命名冲突. 你可以尝试避免出现这种情况,通过在所有类前添加前缀的方法,或者你可以使用namespace语句.\nNamespace关键字给一块代码命名. 在这个代码块外部,脚本必须用操作符::加上命名空 …"
November 13, 2008
把表记录生成数组
"以下是来自phpcms2008程序global.func.php文件部分函数,仅供参考:\nfunction cache_read($file, $path = ”, $iscachevar = 0) { if(!$path) $path = CACHE_PATH; $cachefile = $path.$file; if($iscachevar) { global $TEMP; $key = ‘cache_’.substr($file, 0, -4); return isset($TEMP[$key]) ? $TEMP[$key] : $TEMP[$key] = @include $cachefile; } return @include $cachefile; } function cache_write($file, $array, $path = ”) { if(!is_array($array)) return false; $array = “”; $cachefile = ($path ? $path : CACHE_PATH).$file; $strlen = …"
November 12, 2008
mysql复制表和表结构
"一、CREATE TABLE 方法\n整表复制 # create table 新表 select * from 旧表;\n结构复制 # create table 新表 select * from 旧表 where 1\u0026lt;\u0026gt;1;\n二、INSERT INTO 方法\n得到建表语句 # show create table 旧表;\n新建表\n复制数据到新表 # insert into 新表 select * from 旧表;"
November 12, 2008
PHP命名空间的分隔符是“\”
"PHP最终开始支持namespace(命名空间)。 但是经过开发者几个小时的讨论后,他们决定采用 “\\” 作为分隔符,而不是更流行的“ :: ”。Fredrik Holmström指出了这种分隔方法可能会产生的问题,如打字出错(但不会出现错误提示),IDE兼容性问题,字符数字等等,好处则是容易输入和分析。”"
November 12, 2008
新一篇: Oracle数据库的安全性措施概述
"一、Oracle中的实体完整性 Oracle在CREATE TABLE语句中提供了PRIMARY KEY子句,供用户在建表时指定关系的主码列。例如,在学生-选课数据库中,要定义Student表的Sno为主码,可使用如下语句:\nCREATETABLE student\n(sno NUMBER(8),\nsanme VARCHAR(20),\nsage NUMBER(20),\nCONSTRAINT pk_sno PRIMARYKEY(sno));\n其中,PRIMARY KEY(Sno)表示是Student表的主码。PK_SNO是此主码约束名。\n若要在SC表中定义(Sno,Cno)为主码,则用下面语句建立SC表:\nCREATETABLE sc\n(sno NUMBER(8),\ncno NUMBER(2),\ngrade NUMBER(2),\nCONSTRAINT pk_sc PRIMARYKEY(sno,cno));\n用PRIMARY KEY语句定义了关系的主码后,每当用户程序对主码列进行更新操作时,系统自动进行完整性检查,凡操作使主码值为空或使主码值在表中不唯一,系统拒绝此操作,从而保证了实体完整 …"
November 12, 2008
国内网站 WebServer 和所用 Cache 类型统计
"综合类,从结果上来看 Apache 还是主流:\nSite WebServer Cache www.baidu.com BWS/1.0\nN/A www.qq.com Apache\nsquid/2.6.STABLE5 www.sina.com.cn Apache/2.0.54 (Unix)\nN/A www.sohu.com Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a\nsquid www.163.com Apache/2.2.6 (Unix)\nN/A www.taobao.com Apache\nN/A www.google.cn gws\nN/A www.tom.com Apache\nNetCache NetApp/6.1.1D4 www.soso.com Apache\nN/A www.youku.com Apache\nN/A www.xunlei.com Apache/2.2.8 (Unix)\nN/A www.eastmoney.com Microsoft-IIS/6.0\nN/A www.56.com nginx/0.5.33 …"
November 12, 2008
在 Oracle 和 PHP 中使用 LOB
"作者:Harry Fuecks是否达到 4,000 字节的极限? 我们先来了解一下 LOB……本文相关下载:\nOracle 数据库 10 g\nZend Core for Oracle\nApache HTTP Server 1.3 和更高版本\n使用 VARCHAR2 这样的 Oracle 类型是完全可以的,但如果您要一次性存储的数据量超过它的 4,000 字节的极限,情况将会如何? 要完成此任务,您需要 Oracle 的某个 Long 对象 (LOB) 类型,为此您应了解如何使用 PHP API 来处理 LOB。 这对于不熟悉它的人来说是很困难的。\n在这篇“Oracle+PHP 指南”操作文档中,您将了解可用的 LOB 类型以及与它们相关的问题,然后将探讨 PHP 中常见 LOB 操作示例。\nOracle 中的 Long 对象\nOracle 提供了以下 LOB 类型:\nBLOB,用于存储二进制数据\nCLOB,用于使用数据库字符集编码存储字符数据\nNCLOB,用于使用国家字符集存储 Unicode 字符数据。 注意,您将在本文中使用的 PHP OCI8 扩展当前不支持 NCLOB。 …"
November 12, 2008
在 Oracle 和 PHP 中绑定变量
"作者:Larry Ullman通过绑定变量提高 Oracle 驱动的 PHP 应用程序的速度和安全性。本文相关下载:\nOracle 数据库 10 g\nOracle Instant Client\nOracle JDeveloper PHP Extension\nZend Core for Oracle\n想必您一定知道,当前的大多数网站都依赖数据库,只是方式各有不同。 无论您正在构建的站点需要论坛、电子商务组件、包含大量文章和信息还是仅仅从访问者那里获得反馈,您都很可能会通过某种方式并入数据库。 尽管数据库很重要并通常是不可或缺的,但使用它们会影响(通常是不利影响) Web 应用程序的两个方面: 性能和安全性。 了解何时以及如何在 PHP 中绑定变量将对改善这两个问题方面大有帮助。\n如果您曾经对 Web 项目进行过测试,想必您一定会知道数据库交互通常是要求最高的过程。 在数据库中运行查询时,Oracle 必须先对查询进行分析,以确保它的语法正确,然后才执行实际的查询。 即使您运行多个相似查询也必须先进行分析:\nSELECT * FROM movies WHERE movie_id=1 …"