首页 > 开发 > PHP > 正文

php技巧小结【推荐】

2024-05-04 22:49:36
字体:
来源:转载
供稿:网友

1 如何定义linux和window通用的文件分隔符号

DIRECTORY_SEPARATOR :

目录分隔符,是定义php的内置常量。在调试机器上,在windows我们习惯性的使用“/”作为文件分隔符,但是在linux上系统不认识这个标识,于是就要引入这个php内置常量了:DIRECTORY_SEPARATOR

这样可以不用判断是在linux还是window系统下

2 PHP压缩与解压缩类

PclZip是一个很强大的压缩与解压缩zip文件的PHP类,PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);且能对此类类档案进行处理,包括产生压缩档、列出压缩档的内容以及解压缩档案等等。同时也可以对现有的ZIP包进行添加或删除文件。

最近在压缩文件方面用到了它

生成zip文件

用法一:

<?php include_once('pclzip.lib.php'); $archive = new PclZip('archive.zip'); $v_list = $archive->create('file.txt,data/text.txt,folder'); if ($v_list == 0) { die("Error : ".$archive->errorInfo(true)); }?>

用法二:

<?php include_once('pclzip.lib.php'); $archive = new PclZip('archive.zip'); $v_list = $archive->create('data/file.txt,data/text.txt',PCLZIP_OPT_REMOVE_PATH, 'data',PCLZIP_OPT_ADD_PATH, 'install'); if ($v_list == 0) { die("Error : ".$archive->errorInfo(true)); }?>

官方网站:http://www.phpconcept.net/pclzip/

3 一小段“劣质”的PHP代码优化的过程,请仔细体会优化过程

下面这一小段“劣质”的PHP代码是一道简化了的测试题。这种问题就像在问:你该怎样优化这段代码?

<?echo("<p>Search results for query: " .$_GET['query'] . ".</p>");?>

这段代码的主要问题在于它把用户提交的数据直接显示到了网页上,从而产生XSS漏洞。其实有很多方法可以填补这个漏洞。那么,什么代码是我们想要的呢?

<?echo("<p>Search results for query: " .htmlspecialchars($_GET['query']) . ".</p>");?>

这是最低要求。XSS漏洞用htmlspecialchars函数填补了,从而屏蔽了非法字符。

<?php if (isset($_GET['query'])) {  echo '<p>Search results for query: ',  htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>'; } ?>

接着优化:

<?php if (isset($_GET['query'])) {  echo '<p>Search results for query: ',  htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>'; } ?>
<?被替换成了<?php,这样更符合XML规范。 在输出$_GET['query']的值之前先判断它是否为空。 echo命令中多余的括号被去掉了。 字符串用单引号限定,从而节省了PHP从字符串中搜索可替换的变量的时间。 用逗号代替句号,节省了echo的时间。 将ENT_QUOTES标识传递给htmlspecialchars函数,从而保证单引号也会被转义。虽然这并是最主要的,但也算是一个良好习惯。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表