Daichong'blog

一.引言

 好久没写博客了,不知道该写些什么。
 正发愁呢,突然发现了一个好玩的东西。
 是什么呢?是php的一个扩展GD库。

 为什么说他好玩?我刚开始想的是用gd库做一个画,金黄的太阳、碧蓝的天空下面有绿色的草地、草地上有幢五颜六色的房子和一个坐在草里玩电脑的男孩,以及旁边的一只白猫…
后来真的要做的时候才发现,这也太难了。除非全是用图片组合成的才用可能…但是真正的图片确也很难到达我的要求,那就算了吧,想象还是美好的。

 后来经过整理和实践发现,这个东西比较适合做产品推广图来用,更加适合在公众号或小程序里跟二维码结合起来使用。

php

关于trait之前可以说是完全没有了解过,看了官方文档之后才得知是php5.4的新特性,用来解决在不同结构(模块)下代码复用的问题.具体可以查看php手册
手册的介绍相对来说还是比较清晰的,那这篇文章就是为了献给那些不喜欢看文档,喜欢直接上手使用的童鞋.

首先介绍一下我的项目结构 我在Common模块下新建了一个文件traits 命名空间为 common/traits。

现在有多个模块需要使用相同的代码,那么就在traits下新建一个控制器,写入公用的代码

php

下面先为大家介绍两个php函数:
array_column():返回输入数组中某个单一列的值。

小例子:


array_column的用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$a = array(
array(
'id' => 5698,
'first_name' => 'daichong',
'last_name' => 'css',
),
array(
'id' => 4767,
'first_name' => 'dc',
'last_name' => 'js',
),
array(
'id' => 3809,
'first_name' => 'DC',
'last_name' => 'web',
)
);
$lastNames = array_column($a,'first_name')

php

今天一直在和别的公司对接接口,之前的对接都没有做来往日志,这样的话功能出了问题要针对性的找到问题的原因比较麻烦,逼不得已只能做个日志记录一下。而且程序还没有使用任何框架,又不想研究别人的代码,没办法只能自己简单的做一个写入日志的功能。

php

今天的博客内容是php实现导出excel,大家都知道实现php导出excel有很多种方法,最方便的是phpexcel这个插件,但是在处理海量数据的时候就会出现非常非常缓慢的情况。而且用这个插件要求的php版本是5.6以上,很不巧,我的php版本是5.4。用不了这个插件,只能另寻他法了!

刚开始的使用是使用前端的table导出,感觉不是很好用,代码量太大,不方便。

后来又尝试了几种方法,最后选择了一种最简单,最有效,代码量最少的方法!

php

经常使用各种编辑器的小伙伴们都会遇到,在复制一些带有样式文字到编辑器然后保存到数据库里之后一些特殊的符号被转义成了html实体。

例如:大于号和小于号,通过编辑器和框架的过滤和处理存到数据库的是&gt和<

然后在前端把数据输出到页面上之后还是数据库里的原文,并没有转义成正常的符号。

那么就需要用到这个php函数了:

转义函数官方文档
1
htmlspecialchars_decode()

在我使用之后发现他不仅能解决这些符号的问题,其他html标签的问题在转义后也能正常使用。

php

本篇介绍一下php的单例模式以及PDO连接数据库的方法。

说到’单例模式‘php基础比较扎实的童鞋肯定不陌生,但像本人这样的程序猿基础不是很好的可能只是有些印象而已。

那么’单例模式‘到底是什么呢?

他其实是php框架底层比较常用的一种设计模式,例如’工厂模式‘、’注册树模式‘、’策略模式‘以及’观察者模式‘等等,都是php各大框架底层架构的核心所在!

所谓的’单例模式‘说白了其实就是’三私有,一公有‘。

’三私有‘:一个私有变量作为实例化对象存储,两个私有方法’clone‘防止克隆对象以及’construct‘。

’一公有‘:一个共有的方法用来检测和实例化类。

php

替换文字为星号的功能经常会遇到,比如关键词过滤,聊天内容过滤等,话不多说直接上代码!

[实现代码]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$text = "苏菲的世界安防科技按时付款链接萨达哈垃圾卡刷卡费SAP发生破房间爱上;靠谱积分卡普斯安徽交付恐怕是电话费破ID卡手IP卡";
// 回调函数
function next_year($matches)
{
$len = mb_strlen($matches[0],'UTF8');
$res = '';
for($i=1;$i<=$len;$i++){
$res.='*';
}
return $res;
}
$arr = array('链接','卡');
$preg_str = implode('|',$arr);
echo preg_replace_callback("/($preg_str)/","next_year",$text);
php