全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php技巧小结【推荐】

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函数,从而保证单引号也会被转义。虽然这并是最主要的,但也算是一个良好习惯。

4 不用三方类库导出MySQL数据到Excel

如果你经常导出数据,那你可能会遇到用第三方类库导出上限,这是一个很无奈的事情,在超过两万条数据的时候,经常导出失败。很容易到达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技巧  # 分享五个PHP7性能优化提升技巧  # PHP后门隐藏的一些技巧总结  # php提高脚本性能的4个技巧  # php把文件设置为插件的技巧方法  # PHP学习的技巧和学习的要素总结  # PHP实用小技巧之调用录像的方法  # php探针使用原理和技巧讲解  # php和vue配合使用技巧和方法  # 浅谈PHP7中的一些小技巧  # 解压缩  # 句柄  # 这段  # 小段  # 是一个  # 类库  # 这是  # 这一  # 如果你  # 单引号  # 是在  # 分隔符  # 成了  # 也会  # 就像  # 你要  # 有很多  # 也可  # 很容易  # 要把 


相关文章: 独立制作一个网站多少钱,建立网站需要花多少钱?  建站之星后台管理系统如何操作?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  动图在线制作网站有哪些,滑动动图图集怎么做?  孙琪峥织梦建站教程如何优化数据库安全?  建站之星下载版如何获取与安装?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  建站主机系统SEO优化与智能配置核心关键词操作指南  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Android自定义控件实现温度旋转按钮效果  网站制作软件有哪些,制图软件有哪些?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何选择PHP开源工具快速搭建网站?  建站之星如何取消后台验证码生成?  建站之星备案流程有哪些注意事项?  如何在阿里云域名上完成建站全流程?  西安大型网站制作公司,西安招聘网站最好的是哪个?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  制作网站的基本流程,设计网站的软件是什么?  招贴海报怎么做,什么是海报招贴?  建站之星伪静态规则如何正确配置?  太原网站制作公司有哪些,网约车营运证查询官网?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  建站主机默认首页配置指南:核心功能与访问路径优化  微信小程序 input输入框控件详解及实例(多种示例)  建站之星如何通过成品分离优化网站效率?  C#怎么创建控制台应用 C# Console App项目创建方法  建站之星如何保障用户数据免受黑客入侵?  ,网站推广常用方法?  无锡营销型网站制作公司,无锡网选车牌流程?  建站之星多图banner生成与模板自定义指南  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何用AWS免费套餐快速搭建高效网站?  定制建站价位费用解析与套餐推荐全攻略  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  如何用PHP工具快速搭建高效网站?  建站之星后台密码遗忘如何找回?  香港网站服务器数量如何影响SEO优化效果?  nginx修改上传文件大小限制的方法  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  建站主机服务器选购指南:轻量应用与VPS配置解析  建站主机与服务器功能差异如何区分?  ,怎么在广州志愿者网站注册?  如何通过VPS建站实现广告与增值服务盈利?  ,网页ppt怎么弄成自己的ppt?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  建站之星在线版空间:自助建站+智能模板一键生成方案  如何在VPS电脑上快速搭建网站?  如何通过主机屋免费建站教程十分钟搭建网站?  建站ABC备案流程中有哪些关键注意事项? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。