include,require的返回值和引入的文件有关,引入<?php return 'a'; ?>返回值就是a ,数字8就是8
###################################################
加与不加,视情况而定。先定义一下两者的区别。 加结尾的:之后的内容视为 纯文本直接输出,直到再次碰到 <? 或 <?php 不加的:之后的内容视为 PHP 代码,除非没有代码了。 像一些函数库,类库这类文件,不加结尾比较好。这样当它们被其他文件包含的时候,可以避免一些因为有输出而导致的错误。比如 <?PHP //如果 a.php 有结尾,并且后面多一个回车或空格。下面这行一定报错。 include("a.php"); session_start(): ?> 另外,不加结尾还有个好处,如果服务器被病毒感染,病毒会在你的 PHP 文件最后加上 HTML 码。例如:<img src="他的带毒地址" /> 不加结尾的话,等效于直接在 PHP 文件里书写 HTML 码,PHP 报错运行中断。至少你网站的访客不会因为这个中毒,你也能马上发现染毒了。。 总的来说,我个人认为,纯 PHP 的程序,不加结尾符,比加结尾符更具有优势。如果你程序后面还有 HTML 码之类的文本输出,那你一定要加结尾。
######################################
ob_start(); //打开一个输出缓冲区,所有的输出信息不再直接发送到浏览器,而是保存在输出缓冲区里面。
ob_clean(); //删除内部缓冲区的内容,不关闭缓冲区(不输出)。
ob_end_clean(); //删除内部缓冲区的内容,关闭缓冲区(不输出)。
ob_get_clean(); //返回内部缓冲区的内容,关闭缓冲区。相当于执行 ob_get_contents() and ob_end_clean()
ob_flush(); //发送内部缓冲区的内容到浏览器,删除缓冲区的内容,不关闭缓冲区。
ob_end_flush(); //发送内部缓冲区的内容到浏览器,删除缓冲区的内容,关闭缓冲区。
ob_get_flush(); //返回内部缓冲区的内容,并关闭缓冲区,再释放缓冲区的内容。相当于ob_end_flush()并返回缓冲区内容。
flush(); //将ob_flush释放出来的内容,以及不在PHP缓冲区中的内容,全部输出至浏览器;刷新内部缓冲区的内容,并输出。
ob_get_contents(); //返回缓冲区的内容,不输出。
ob_get_length(); //返回内部缓冲区的长度,如果缓冲区未被激活,该函数返回FALSE。
ob_get_level(); //Return the nesting level of the output buffering mechanism.
ob_get_status(); //Get status of output buffers.
ob_implicit_flush(); //打开或关闭绝对刷新,默认为关闭,打开后ob_implicit_flush(true),所谓绝对刷新,即当有输出语句(e.g: echo)被执行时,便把输出直接发送到浏览器,而不再需要调用flush()或等到脚本结束时才输出。
ob_gzhandler //ob_start回调函数,用gzip压缩缓冲区的内容。
ob_list_handlers //List all output handlers in use
output_add_rewrite_var //Add URL rewriter values
output_reset_rewrite_vars //Reset URL rewriter values
这些函数的行为受php_ini设置的影响:
output_buffering //该值为ON时,将在所有脚本中使用输出控制;若该值为一个数字,则代表缓冲区的最大字节限制,当缓存内容达到该上限时将会自动向浏览器输出当前的缓冲区里的内容。
output_handler //该选项可将脚本所有的输出,重定向到一个函数。例如,将 output_handler 设置为 mb_output_handler() 时,字符的编码将被修改为指定的编码。设置的任何处理函数,将自动的处理输出缓冲。
implicit_flush //作用同ob_implicit_flush,默认为Off。
###############################################################################################
异常(Exception)用于在指定的错误发生时改变脚本的正常流程。
PHP 5 提供了一种新的面向对象的错误处理方法。
异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。
当异常被触发时,通常会发生:
当前代码状态被保存
代码执行被切换到预定义的异常处理器函数
根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本
我们将展示不同的错误处理方法:
异常的基本使用
创建自定义的异常处理器
多个异常
重新抛出异常
设置顶层异常处理器
异常的基本使用
当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 “catch” 代码块。
如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 “Uncaught Exception” (未捕获异常)的错误消息。
###############################################################################################
dirname(__FILE__) 或 pathinfo(__FILE__,PATHINFO_DIRNAME ) 是 D:\wamp\www\test
一个是前半,一个是后半.
**************************************************************************************************************************************************
var_dump(pathinfo(__FILE__));是
pathinfo(__FILE__)居然是个数组,也就是说pathinfo(__FILE__)['dirname'];也可以?
echo pathinfo(__FILE__)['dirname'];
显示
D:\wamp\www\test
#############################################strtr和 str_replace#########################################################
一个是字符替换,一个是字符串替换
echo strtr("Hilla Ward","ia","eo")."<br/>";
echo str_replace("world","baidu","Hello world!")."<br/>";
echo str_replace("ia","eo","Hilla Ward")."<br/>";
echo str_replace("la","eo","Hilla Ward");
显示:
Hello Word
Hello baidu!
Hilla Ward
Hileo Ward
说明strtr和str_replace的区别是,
一个要替换的字符串是在前面, 一个是在后面.
一个是检测所有的字母(符),最小单位是字母(符), 一个最小单位是字符串.
********************************************************************
逐个字符开始替换,以from跟to中长度较较短的一个为准,例如:
strtr("aidenliu","ai","b") 只替换原始字符串中出现的a 输出:bidenliu
strtr("aidenliu","a","bc") 只替换原始字符串中出现的a 输出:bidenliu
可以替换多个字符
****************************************************************************************
$arr = array("Hello" => "Hi", "world" => "earth");
echo strtr("Hello world",$arr);
结果:
Hi earth
也可以把数组的下标换成数组的值.
###############################################################################################################
mt_rand -- 生成更好的随机数
说明
int mt_rand ( [int min, int max] )
很多老的 libc (C的标准库)的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了马其赛特旋转 (Mersenne Twister) 演算法中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。mt_就是马其赛特.
如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)。
例 1. mt_rand() 范例
echo mt_rand() . "\n";
echo mt_rand() . "\n";
echo mt_rand(5, 15);
?>
上例的输出类似于:
1604716014
1478613278
6
#############################################################################################################
.htaccess是Apache的文件,全称是Htaccess is short for Hypertext Access(超文本入口)
#############################################################################################################
ini_set()和ini_get()都是拿PHP配置文件里的数据.这个好.
如:
ini_set('magic_quotes_runtime', 0);
ini_get('register_globals')
############################################################################################################