BeWithYou

胡搞的技术博客

PHP

PHP过滤字符串中4字节utf8字符


抓取第三方接口的时候发现有一些字段无法入库,本来以为是字段长度太大,于是加大了mysql的字段长度,发现还是不行。详细跟进到具体记录时,发现这样的记录存在特殊符号,这样的符号只有在firefox下才能看到占位。但是接口字符确实是utf8编码的,那为何会有非法字符呢? utf8是变长编码,我们常用的汉字编码是3字节,但是还存在4字节编码的特殊符号,如emoji表情等等。mysql在比较新的版本里添加了utf8mb4编码的支持,……
PHP

swoole服务中session的处理


swoole_server中对象有4层生命周期:1.程序全局期,2.进程全局期,3.会话期,4.请求期。 session的使用是在会话期,会话期的对象是常驻内存的,不需要session_start之类的操作。但是如果是这种情况,swoole的HTTP服务和普通的php-fpm放在一个环境里,使用相同的域名,利用nginx针对特定路径进行转发,就会存在session取不到的问题。 因为: swoole……
PHP

【转】phper的思维定势


看到一篇文章觉得说的很有道理,转过来一下。原文是php饭米粒公众号的推送。 php高效,快速,成为了很多互联网公司startup的首选,经历了二十多的发展,已无可争议的成为了web开发领域的王者,这是一个巨大的优势,也是php成功的基石。 但这种优势慢慢的变成了一个思维定势,php很难单独提出来,往往是跟着LAMP, LNMP一起被人提及,这成为了phper发展的一个瓶颈,非phper看phper……
PHP

foreach循环踩坑


这里的foreach是PHP的。看下面一段代码会输出什么? $arr = [1,2,3,4,5]; foreach($arr as $k => $v){ if($v == 2 || $v == 4){ array_splice($arr,$k,1); } } print_r($arr); //output //Array //( // [0] => 1 // [1] => 3 // [2] => 4 //) 本以为foreach循环中改变数组的内容会影响到每次遍历,其实……
PHP

swoole的HTTP服务踩坑


最近玩了球球大作战,他抄袭的是agar.io。游戏逻辑还是蛮简单的,所以找了一个源码看了一下。 参考网上agar.io的开源复刻版代码,我打算用php重写个后端逻辑玩玩。 因为不想配nginx规则,所以直接用swoole的HTTP服务搭一个HTTP Service,但是页面打开以后发现css文件无法解析,但是请求都是200。 猜是响应头的Content-Type
PHP

使用迭代器打包phar


当你的项目符合单点入口,即所有请求都以index.php作为入口时,可以考虑使用phar打包代码。可能会方便线上部署,就跟java的jar一样。虽然现在很少看到有人这么做了,不过可以学习一下。 打包phar的核心类是Phar类,网上的例子大多数是这样的: //前略 file name:build.php $file = "test.phar"; $phar = new Phar(__DIR__.'/'.$file, FilesystemIterator::CURRENT……
回到顶部