LMLPHP后院

PHP pdo like 操作的一个坑

本来不想发这样的文章,因为这个问题导致我出错了好几次,隔一段时间就错一次。pdo 的占位符会自动的加上引号,所以在写的时候占位符就无需加上引号。不知为何,我在写 like 操作的时候习惯加上引号,导致查询不出结果,而其他的操作不会犯这种错误也许是因为很少手动去写,底层都封装好了。like 操作的通配符不能出现在占位符处,必须在绑定值的时候传递。如:$rs = q('order')->select('d...

谈谈 PHP 协程的任务调度

used inside a function in line 6可以看出,yield 只能包裹在 function 中。yield 不同于线程和进程,它是编译器实现的执行控制,而后者是操作系统层面的时间片控制。说的更直白一点,yield 就是高级的 goto 语句,并且还可以进行简单的双向通信。看如下最简单的任务调度控制:$coroutineArr = array(); require DEFAUL...

基于 HTML5 的 EventSource 实时推送实现

览器不支持 server-sent 事件 ..."; } </script>本文示例后端使用文件保存聊天记录,读取文件内容的更新返回给客户端,通过保持长连接和 chunked 传输实现实时通信。经过长时间观察测试,EventSource 会每隔大约 5 分钟重新请求一次,稳定性不错,连续几天不下线都能保持连接。...

通过 UA 来识别浏览器和操作系统

一般这种只适用于浏览器请求识别,如果是 APP 客户端一般也不会设置这样的字段,至少会换种方式或名字。如果要更加准确的判断这些信息,应该在客户端完成识别。即使意义不大,还得尝试去做。写这种代码,比较费时间,因为不仅仅是技术,而是需要大量的搜集工作。找了一些开源的软件包,大的吓人,有些竟然依赖网络请求,这样就很慢且不稳定。发现一个网上的接口,一看就是专业的。useragentstring.com,不过这...

解决 springboot Interceptor @Autowired null

tors(registry); } } 上面的代码看似非常简洁,其实是有一些问题的。当 WebInterceptor 类中使用了 @Autowired 的属性就会出现空指针错误。问题原因:拦截器加载的时间点在 springcontext 之前,所以在拦截器中注入值为 null,使用 Bean 注解提前加载即可解决。代码改成如下:@Bean public HandlerInterceptor getWe...

告别 startssl 拥抱 letsencrypt

的大股东是“奇虎360”,也是醉了,startssl 的证书在 firefox 和 chrome 平台下已经不被信任。不过 letsencrypt 实在不好用,一看依赖一大堆,让人望而生畏。观察了一些时间后,还是决定用它。我用的是 https://github.com/lukas2511/dehydrated ,作者说只是在里面加了水。步骤如下:设置验证文件,apache 配置如下:Alias /.w...

osmr车载TF内存卡是个辣鸡千万别买

评了,结果要求追加好评。都完成了之后告诉我说 30 天才到账。这才让我觉得不对劲,看了下差评,结果有专业人士指出卡是假的,不知道为什么有这么多人昧着良心说话。我是好几年没有在淘宝买东西了,这次估计是长时间不买,能力退化。不过也侧面反映阿里的命快终结了,这一天一定会很快到来,不论你们怎么双十一,双十二刷流量提升网站影响力,都是不能挽回这个趋势的。最后选择了 7 天无理由退货...啥也不说了,上图。我买的...

Ajax 并发回调的顺序问题

有解决,因为搜索提示功能出现这个问题的概率太大了。而我要说的这个问题是在某些情况下,特别是 Ajax 局部刷新的情况下,概率很小的情况下才会发生的,所以这个情况很多时候被忽略了,所以一拖再拖,一直没有时间去做这个东西,而不是不知道解决方法。最简单的方法当然是接口传参数,这个方法肯定是可行的,但是麻烦阿,需要后端支持阿,能不能更简单一些?前端应该是可以解决这个问题的,试了下 Jquery 的 Ajax,...

沉默的双眼

什么时候开始,大家都变的沉默,信息科技再发达又能怎么样?我们变得不再愿意评论,不再愿意交流,遇到事情甚至无处可以述说,当然也无能为力。这个样子的人类,和猪圈里面的猪一样,可以任意宰割,只不过,我们活的时间长一些。有时候觉得,人类,特别是当下的老百姓,整个人生真的很悲哀,......

MySQL 使用原始数据文件创建一个数据快照

sqldump 更加有效,然后在每个从库上导入文件。当执行 INSERT 语句时,这种技术会跳过更新索引的开销。使用这种方法与具有复杂缓存或记录算法的存储引擎中的表一起使用需要额外的步骤来生成完美的“时间点”快照:即使您已获得全局读锁定,初始复制命令可能会遗漏缓存信息和记录更新。 存储引擎如何响应这取决于其崩溃恢复能力。当主从服务在 ft_stopword_file, ft_min_word_len...
2026-09-25 07:06:44 1790291204 0.023248