-
说明:就算session内容被清空,也不影响session的整体存在, 因为没有内容的情况下sessionid依然存在并保持和一开始一样。 <?php //开始使用session session_start(); //设置一个session $_SESSION['test'] = time(); $_SESSION['test2'] = time()+1; //显示当前的session_id echo "session_id:".session_id(); echo "<br>"; //读取session值 echo $_SESSION['test']; echo $_SESSION['test2']; //销毁一个session unset($_SESSION['test']); echo "<br>"; echo $_SESSION['test2']; echo "<br>"; var_dump($_SESSION); echo "<br>"; echo "session数组中还有数组对<br>session_id".session_id();//输出id echo "<br>"; //销毁第二个session unset($_SESSION['test2']); var_dump($_SESSION); echo "<br>"; echo "session数组中无数组对<br>session_id".session_id();//输出id
输出如下:
session_id:tj08k7sgupasldk809m0dauvm1 15222284231522228424 1522228424 array(1) { ["test2"]=> int(1522228424) } session数组中还有数组对 session_idtj08k7sgupasldk809m0dauvm1 array(0) { } session数组中无数组对 session_idtj08k7sgupasldk809m0dauvm1
说明:就算session内容被清空,也不影响session的整体存在,因为没有内容的情况下sessionid依然存在并保持和一开始一样。
查看全部 -
\ 一般用于转义字符
^ 断言目标的开始位置(或在多行模式下是行首)
$ 断言目标的结束位置(或在多行模式下是行尾)
. 匹配除换行符外的任何字符(默认)
[ 开始字符类定义
] 结束字符类定义
| 开始一个可选分支
( 子组的开始标记
) 子组的结束标记
? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词)
* 量词,0 次或多次匹配
+ 量词,1 次或多次匹配
{ 自定义量词开始标记
} 自定义量词结束标记元字符具有两种使用场景,一种是可以在任何地方都能使用,另一种是只能在方括号内使用,在方括号内使用的有:
\ 转义字符
^ 仅在作为第一个字符(方括号内)时,表明字符类取反
- 标记字符范围其中^在反括号外面,表示断言目标的开始位置,但在方括号内部则代表字符类取反,方括号内的减号-可以标记字符范围,例如0-9表示0到9之间的所有数字。
查看全部 -
PHP模式修饰符又叫模式修正符,是在正则表达式的定界符之外使用。主要用来调整正则表达式的解释,提扩展了正则表达式在匹配、替换等操作的某些功能,增强了正则的能力。
模式修正符号 功能描述 i 在和正则匹配是不区分大小写 m 将字符串视为多行。默认的正则开始“^”和结束“$”将目标字条串
作为一单一的一“行”字符(甚至其中包括换行符也是如此)。如果
在修饰符中加上“m”,那么开始和结束将会指点字符串的每一行的
开头就是“^”结束就是“$”。
s 如果设定了这个修正符,那么,被匹配的字符串将视为一行来看,包
括换行符,换行符将被视为普通字符串。
x 忽略空白,除非进行转义的不被忽略。 e 只用在preg_replace()函数中,在替换字符串中逆向引用做正常的替换
,将其(即“替换字符串”)作为PHP代码求值,并用其结果来替换所搜
索的字符串。
A 如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分
。比如说”/a/A”匹配”abcd”。
D 模式中的$字符权匹配目标字符的结尾。没有此选项时,如果最后一个
字符是换行符的话,美元符号也会匹配此字符之前。如果设定了修正
符m则忽略此项。
E 与”m”相反,如果使用这个修饰符,那么”$”将匹配绝对字符串的
结尾,而不是换行符前面,默认就打开了这个模式。
U 贪婪模式,和问号的作用差不多,最大限度的匹配就是贪婪模式。 查看全部 -
$host = '127.0.0.1';
$user = 'code1';
$pass = '';
//在这里编写数据库连接代码
$link = mysql_connect($host, $user, $pass);
mysql_select_db('code1');
mysql_query("set names 'utf8'");
查看全部 -
try {
throw new Exception('wrong');
} catch(Exception $ex) {
echo 'Error:'.$ex->getMessage().'<br>';
echo $ex->getTraceAsString().'<br>';
}
echo '异常处理后,继续执行其他代码';
查看全部 -
如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。
class Car { private function __construct() { echo 'object create'; } private static $_object = null; public static function getInstance() { if (empty(self::$_object)) { self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象 } return self::$_object; } } //$car = new Car(); //这里不允许直接实例化对象 $car = Car::getInstance(); //通过静态方法来获得一个实例
查看全部 -
通过mysql的limit可以很容易的实现分页,limit m,n表示从m行后取n行数据,在PHP中我们需要构造m与n来实现获取某一页的所有数据。
假定当前页为$page,每页显示$n条数据,那么m为当前页前面所有的数据,既$m = ($page-1) * $n,在知道了翻页原理以后,那么我们很容易通过构造SQL语句在PHP中实现数据翻页。
$page = 2;
$n = 2;
$m = ($page - 1) * $n;
$sql = "select * from user limit $m, $n";
$result = mysql_query($sql);
//循环获取当前页的数据
$data = array();
while ($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}在上面的例子中,我们使用了$m与$n变量来表示偏移量与每页数据条数,但我们推荐使用更有意义的变量名来表示,比如$pagesize, $start, $offset等,这样更容易理解,有助于团队协作开发。
查看全部 -
跟Unix系统命令类似,PHP使用unlink函数进行文件删除。
unlink($filename);
删除文件夹使用rmdir函数,文件夹必须为空,如果不为空或者没有权限则会提示失败。
rmdir($dir);
查看全部 -
与读取文件对应,PHP写文件也具有两种方式,最简单的方式是采用file_put_contents。
$filename = './test.txt';
$data = 'test';
file_put_contents($filename, $data);上例中,$data参数可以是一个一维数组,当$data是数组的时候,会自动的将数组连接起来,相当于$data=implode('', $data);
同样的,PHP也支持类似C语言风格的操作方式,采用fwrite进行文件写入。
$fp = fopen('./test.txt', 'w');
fwrite($fp, 'hello');
fwrite($fp, 'world');
fclose($fp);查看全部 -
通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。
$filename = '/data/webroot/usercode/resource/test.txt';
$size = filesize($filename);查看全部 -
fileowner:获得文件的所有者filectime:获取文件的创建时间filemtime:获取文件的修改时间fileatime:获取文件的访问时间
其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态文件或者缓存数据的更新。
$mtime = filemtime($filename);
echo '修改时间:'.date('Y-m-d H:i:s', filemtime($filename));查看全部 -
PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中。
$content = file_get_contents('./test.txt');
$contents .= fread($fp, 4096); //一次读取4096个字符
查看全部 -
删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。
session_start();
$_SESSION['name'] = 'jobs';
unset($_SESSION['name']);
echo $_SESSION['name']; //提示name不存在如果要删除所有的session,可以使用session_destroy函数销毁当前session,session_destroy会删除所有数据,但是session_id仍然存在。
查看全部 -
在PHP中删除cookie也是采用setcookie函数来实现。
setcookie('test', '', time()-1);
可以看到将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的。
查看全部 -
preg_match只能匹配一次结果,但很多时候我们需要匹配所有的结果,preg_match_all可以循环获取一个列表的匹配结果数组。
$p = "|<[^>]+>(.*?)</[^>]+>|i";
$str = "<b>example: </b><div align=left>this is a test</div>";
preg_match_all($p, $str, $matches);
print_r($matches);查看全部
举报