PHP autoload机制详解
autoload机制概述
在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这 也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例 子: 阅读全文…
autoload机制概述
在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这 也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例 子: 阅读全文…
str_replace() 函数使用一个字符串替换字符串中的另一些字符。
str_replace(find,replace,string,count)
| 参数 | 描述 |
|---|---|
| find | 必需。规定要查找的值。 |
| replace | 必需。规定替换 find 中的值的值。 |
| string | 必需。规定被搜索的字符串。 |
| count | 可选。一个变量,对替换数进行计数。 |
注释:该函数对大小写敏感。请使用 str_ireplace() 执行对大小写不敏感的搜索。 阅读全文…
从表面上看,很容易误解empty()函数是判断字符 串是否为空的函数,其实并不是。
empty()函数是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。所以,当字符串的值为0时,也返回true,就是执行empty内部的语句。这就是陷阱。
如: 假设 $value = 0; 则empty($value)=false。
劝告各位,千万注意使用empty()函数。
判断字符串是否为空,可以这么判断: if ($value==”") …
* 格式:bool empty ( mixed var )
* 功能:检查一个变量是否为空
* 返回值:
* 若变量不存在则返回 TRUE
* 若变量存在且其值为”"、0、”0″、NULL、、FALSE、 array()、var $var; 以及没有任何属性的对象,则返回 TURE
* 若变量存在且值不为”"、0、”0″、NULL、、FALSE、 array()、var $var; 以及没有任何属性的对象,则返回 FALSE
mysql_fetch_row() 函数从结果集中取得一行作为数字数组。
mysql_fetch_row(data)
| 参数 | 描述 |
|---|---|
| data | 必需。要使用的数据指针。该数据指针是从 mysql_query() 返回的结果。 |
mysql_fetch_row() 从和结果标识 data 关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 FALSE。
返回根据所取得的行生成的数组,如果没有更多行则返回 false。 阅读全文…
array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。
array_key_exists(key,array)
| 参数 | 描述 |
|---|---|
| key | 必需。规定键名。 |
| array | 必需。规定输入的数组。 |
<?php
$a=array("a"=>"Dog","b"=>"Cat");
if (array_key_exists("a",$a))
{
echo "Key exists!";
}
else
{
echo "Key does not exist!";
}
?>
输出:
Key exists! 阅读全文...
mysql_insert_id() 函数返回上一步 INSERT 操作产生的 ID。
如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0。
mysql_insert_id(connection)
| 参数 | 描述 |
|---|---|
| connection | 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。 阅读全文… |
exit() 函数输出一条消息,并退出当前脚本。
该函数是 die() 函数的别名。
exit(status)
| 参数 | 描述 |
|---|---|
| status | 必需。规定在退出脚本之前写入的消息或状态号。状态号不会被写入输出。 |
如果 status 是字符串,则该函数会在退出前输出字符串。
如果 status 是整数,这个值会被用作退出状态。退出状态的值在 0 至 254 之间。退出状态 255 由 PHP 保留,不会被使用。状态 0 用于成功地终止程序。
注释:如果 PHP 的版本号大于等于 4.2.0,那么在 status 是整数的情况下,不会输出该参数。
<?php
$site = "http://www.w3school.com.cn/";
fopen($site,"r")
or exit("Unable to connect to $site");
?>
mysql_get_server_info() 函数返回 MySQL 服务器的信息。
如果成功,则返回 MySQL 服务器的版本号,如果失败,则返回 false。
mysql_get_server_info(connection)
| 参数 | 描述 |
|---|---|
| connection | 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。 |
<?php
$con = mysql_connect("localhost", "hello", "321");
echo "MySQL server info: " . mysql_get_server_info($con);
?>
输出:
MySQL server info: 5.0.18-nt
从康盛的ucenter中我们查看daddslashes函数,提到daddslashes函数,我们要看看前面的代码
unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS);
$_GET = daddslashes($_GET, 1, TRUE);
$_POST = daddslashes($_POST, 1, TRUE);
$_COOKIE = daddslashes($_COOKIE, 1, TRUE);
$_SERVER = daddslashes($_SERVER);
$_FILES = daddslashes($_FILES);
$_REQUEST = daddslashes($_REQUEST, 1, TRUE);
这里将$_GET,$_POST,$_COOKIE和$_REQUEST这四个函数进行特殊过滤,下面我们再来看daddslashes函数
function daddslashes($string, $force = 0, $strip = FALSE) { //字符串或数组 是否强制 是否去除 //如果魔术引用未开启 或 $force不为0 if(!MAGIC_QUOTES_GPC || $force) { if(is_array($string)) { //如果其为一个数组则循环执 行此函数 foreach($string as $key =$val) { $string[$key] = daddslashes($val, $force); } } else { //如果魔术引用开启 或$force为0 //下面是一个三元操作 符,如果$strip为true则执行stripslashes去掉反斜线字符,再执行addslashes //$strip为true的,也就是先去掉反斜线字符再进行转义的 为$_GET,$_POST,$_COOKIE和$_REQUEST $_REQUEST数组包含了前三个数组的值 //这里为什么要将$string先去掉反斜线再进行转义呢,因为有的时候$string有可能有两个反斜 线,stripslashes是将多余的反斜线过滤掉 $string = addslashes($strip ? stripslashes($string) : $string); } } return $string;}date_default_timezone_set() 函数设置用在脚本中所有日期/时间函数的默认时区。
date_default_timezone_set(timezone)
| 参数 | 描述 |
|---|---|
| timezone | 必需。时区标识符,比如 “UTC” 或 “Europe/Paris”。
合法时区的列表:http://www.php.net/manual/en/timezones.php |
注释:自 PHP 5.1.0 起(此版本日期时间函数被重写了),如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE 级别的错误信息,如果使用系统设定或 TZ 环境变量则还会产生 E_STRICT 级别的信息。
<?php echo(date_default_timezone_set("Europe/Paris")); ?>
输出:
1