PHP简写三目运算符实现二选一
在其他的语言中,比如 JavaScript 和 Python 中,或运算(||) 会返回两者中的一个,是二选一。由于习惯了 JavaScript 的那种或运算的写法,导致一次我在将 Python 业务代码移植到 PHP 中时写出了一个 BUG。 看下面的 JavaScript 代码: var name = obj.name || 'Anonymous'; var callback = obj.call...
No-Transform协议禁止搜索引擎转码兼移动站建设问答
常被百度,360等搜索引擎转码展示。转码后发现网页质量不太好,很多功能都出问题了。本人也是非常讨厌这种无声无息的动作,之前在站长沙龙上看到过一些问答,有关于如何禁止搜索引擎转码网页的问题,需要加上一段代码。我就是后知后觉的那种,当时并没有加上这段代码,现在实在是看不下去了,不得不加上了。加上后网站的转码并不会立刻生效,还需要耐心观察。no-transform 代码如下: <meta http-equi...
PHP 内存泄露重现 include 匿名函数
坑,也不一定会触发,即使是触发了,也不一定发现的了。这个是 include 或者是 require 对于匿名函数的内存泄露大坑。很多市面上的 PHP 教程都说 include require 相当于把代码复制到那个位置,从这个代码示例验证来看,其实不是这样的!$i=0; while (true) { if ($i%1000 == 0) { echo memory_get_usage()."\n"; s...
JavaScript获取DOM节点HTML元素CSS样式
的的样式值。 使用 CSS 控制页面的四种方式,分别为行内样式(内联样式)、内嵌式、链接式、导入式,下面分别介绍。 行内样式(内联样式)即写在 HTML 标签中的 style 属性中控制元素样式,如下代码示例: <div style="width:100px;height:100px;"></div> 内嵌样式即写在 style 标签中,如下代码示例: <style type="text/css"> ...
谈谈PHP框架Laravel和CodeIgniter
关于 PHP 框架,好用的不好用的出名的不出名的特别多。本文的标题选择了两个比较有代表性的 PHP 框架,并不是代表其他的框架就不好,也不是代表这两个框架就很好。在我的开发理念里,追求代码的简单,如果一个框架去做一件事情能写更少的代码,更完美的解决问题,写起来更方便,它就是好框架,而不是一些不适用的 MVC OOP AOP。凭我对 PHP 的了解,市面上的框架 ThinkPHP Yii ZendFra...
谈谈项目开发过程中GIT合并分支
团队项目开发过程中,如果 GIT 的使用不统一,不规范,或者某些成员对 GIT 的操作不太熟悉,导致分支的合并特别混乱,使用 --graph 参数查看或者后期代码审查都是非常不友好的。我曾经到过的一家公司,强制所有的合并都使用 pull request,并且强制所有的 pull request 都必须 rebase 成一个 commit。现在想想,觉得他们很傻,真的很傻,如果一个公司对于技术只有偏执,...
图像处理技术之图片添加水印
关于如何给添加图片水印,网上流传的代码片段有很多,但是基本都是相同的代码,被各大网站转载的到处都是。网上流传的使用PHP给添加图片水印的代码,一般情况下还能使用,发现不了有什么问题,处理图片量一大,就会发现很多图片添加水印会有问题。给某些图片添加文字水印会出现颜色失效的问题,有时候会出现文字中空问题,有些图片会有锯齿,锯齿可能跟字体有关,同时也跟代码处理方式有关。本文讲解如何使用PHP为图片添加水印技...
基于JavaScript在线头像图片编辑前端后台实现
前端使用Jcrop实现预览和获取图片大小,选定位置等信息。关于Jcrop,项目地址在GITHUB上,它基于MIT开源协议。本人看了下项目的源代码,感觉作者蛮认真的。Jcrop做到了兼容IE系列和其他主流浏览器,非常稳定,让开发者不再为前端方面花费太多精力。加上本人不太喜欢Flash实现,纯JavaScript实现的功能效率会更高。由于时间比较仓促,代码没有过多的优化,有点乱,下面公布前端实现和服务端...
使用php函数simplexml_load_string解析xml注意事项
ad_string 的坑 文本讲述 PHP 函数 simplexml_load_string 解析 xml 的注意事项。对于提交比较小的 xml,使用此函数解析是再适合不过啦。关于此函数的坑,请看如下代码:<?php $xml_str = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><MasMessage xmlns="http://...
OpenResty Lua Redis 加速接口响应
本文以完整的示例,展示使用 Nginx、Lua、Redis 对响应速度慢的接口进行加速响应,提供快速的用户体验。代码经过严格的测试,没有任何问题。缓存的核心思想在于读取缓存后,即时中断连接,返回结果,然后继续执行,更新缓存。可以缓存的接口一般都是与用户无关的接口,比如计算当日热度最高的商品排行等。需要加速的接口代码,如下示例:<?php sleep(2); echo 'sleep 2 seconds,...