最新消息:

新鲜干货:PHP代码的一些实用技巧,快速提升学习的方法!

PHP guangzhouzhongxing 62浏览 0评论

1.不要使用相对路径

它首先查找指定的php包含路径,然后查找当前目录,因此会检查过多路径。如果该脚本被另一目录的脚本包含,它的基本目录变成了另一脚本所在的目录。

另一问题,当定时任务运行该脚本,它的上级目录可能就不是工作目录了。因此最佳选择是使用绝对路径。

我们定义了一个绝对路径,值被写死了。我们还可以改进它,路径 /var/www/project 也可能会改变,那么我们每次都要改变它吗?不是的,我们可以使用__FILE__常量。

现在,无论你移到哪个目录,如移到一个外网的服务器上,代码无须更改便可正确运行。

2. 不要直接使用 require, include

可以在脚本头部引入多个文件、像类库、工具文件和助手函数等。

这种用法相当原始,应该更灵活点,应编写个助手函数包含文件。

有什么不一样吗?该代码更具可读性,將来你可以按需扩展该函数。

还可做得更多:为同样文件查找多个目录。能很容易的改变放置类文件的目录,无须在代码各处一一修改。可使用类似的函数加载文件,如html内容。

除此之外,开发中经常会碰到导出MySQL数据到Excel文件的需求。一些开源的类库,如PHPExcel,确实比较容易实现,但由于对大量数据的兼容很不好,很容易到达PHP内存使用上限。

3.广州中星小编整理了一下fputcsv写CSV文件的方式,具体实现代码如下

//声明文件头,文件名news.csv,需自行修改

header(‘Content-Type: application/vnd.ms-excel’);

header(‘Content-Disposition: attachment;filename=”news.csv”‘);

header(‘Cache-Control: max-age=0’);

//打开文件句柄,并输出至浏览器

$fp = fopen(‘php://output’, ‘a’);

//定义并输出Excel列名

$t = array(‘编号’, ‘标题’);

foreach ($t as $_k => $_v) {

//转码,CSV的Excel支持GBK编码

$t[$_k] = iconv(‘utf-8’, ‘gbk’, $_v);

}

fputcsv($fp, $t);

//操作数据库,读取数据

$condition = ‘1’;

$result = $db->query(“SELECT * FROM e_article WHERE {$condition}”);

//初始化计数器

$i = 0;

//定义刷新输出缓冲频率行数

$limit = 100000;

while($r = $db->fetch_array($result)) {

$i++;

if($i < $limit){

//刷新输出buffer

ob_flush();

flush();

$i = 0;

}

//转码

foreach ($r as $k => $v) {

$r[$k] = iconv(‘utf-8’, ‘gbk’, $v);

}

fputcsv($fp, $r);

}

$db->free_result($result);

转载请注明:PHP学习 » 新鲜干货:PHP代码的一些实用技巧,快速提升学习的方法!

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址