《PHP实例:php技巧小结【推荐】》要点:
本文介绍了PHP实例:php技巧小结【推荐】,希望对您有用。如果有疑问,可以联系我们。
1 如何定义linux和window通用的文件分隔符号PHP编程
DIRECTORY_SEPARATOR :PHP编程
目录分隔符,是定义php的内置常量.在调试机器上,在windows我们习惯性的使用“\”作为文件分隔符,但是在linux上系统不认识这个标识,于是就要引入这个php内置常量了:DIRECTORY_SEPARATORPHP编程
这样可以不用判断是在linux还是window系统下PHP编程
2 PHP压缩与解压缩类PHP编程
PclZip是一个很强大的压缩与解压缩zip文件的PHP类,PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);且能对此类类档案进行处理,包括产生压缩档、列出压缩档的内容以及解压缩档案等等.同时也可以对现有的ZIP包进行添加或删除文件.PHP编程
最近在压缩文件方面用到了它PHP编程
生成zip文件PHP编程
用法一:PHP编程
<?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编程
<?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/PHP编程
3 一小段“劣质”的PHP代码优化的过程,请仔细体会优化过程PHP编程
下面这一小段“劣质”的PHP代码是一道简化了的测试题.这种问题就像在问:你该怎样优化这段代码?PHP编程
<? echo("<p>Search results for query: " . $_GET['query'] . ".</p>"); ?>
这段代码的主要问题在于它把用户提交的数据直接显示到了网页上,从而产生XSS漏洞.其实有很多方法可以填补这个漏洞.那么,什么代码是我们想要的呢?PHP编程
<? echo("<p>Search results for query: " . htmlspecialchars($_GET['query']) . ".</p>"); ?>
这是最低要求.XSS漏洞用htmlspecialchars函数填补了,从而屏蔽了非法字符.PHP编程
<?php if (isset($_GET['query'])) { echo '<p>Search results for query: ', htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>'; } ?>
接着优化:PHP编程
<?php if (isset($_GET['query'])) { echo '<p>Search results for query: ', htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>'; } ?>
4 不用三方类库导出MySQL数据到ExcelPHP编程
如果你经常导出数据,那你可能会遇到用第三方类库导出上限,这是一个很无奈的事情,在超过两万条数据的时候,经常导出失败.很容易到达PHP内存使用上限PHP编程
// 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="user.csv"'); header('Cache-Control: max-age=0'); // 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可 $sql = 'select * from tbl where ……'; $stmt = $db->query($sql); // 打开PHP文件句柄,php://output 表示直接输出到浏览器 $fp = fopen('php://output', 'a'); // 输出Excel列名信息 $head = array('姓名', '性别', '年龄', 'Email', '电话', '……'); foreach ($head as $i => $v) { // CSV的Excel支持GBK编码,一定要转换,否则乱码 $head[$i] = iconv('utf-8', 'gbk', $v); } // 将数据通过fputcsv写到文件句柄 fputcsv($fp, $head); // 计数器 $cnt = 0; // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小 $limit = 100000; // 逐行取出数据,不浪费内存 while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) { $cnt ++; if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题 ob_flush(); flush(); $cnt = 0; } foreach ($row as $i => $v) { $row[$i] = iconv('utf-8', 'gbk', $v); } fputcsv($fp, $row); }
这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件.PHP编程
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持维易PHP!PHP编程
转载请注明本页网址:
http://www.vephp.com/jiaocheng/1932.html