又弄完了一次 docker

图片alt

原本想显摆一下的,但是吃完饭以后还是冷静了下来,就不贴地址了,等我慢慢完善以后再贴吧,感觉还是有一些差距的

这已经是第三次弄 docker 了。说实话前两次就是照着人家的文章在弄,很多命令都没有研究,就去弄了,dockerfile 和 compose 文件写完了,跑起来了,就当做自己会用了,现在看来还是自己 too young 。

不过这次是真心看着文档一个命令一个命令弄得,包括安装 php 扩展的几种方式也都尝试了。虽然很慢,甚是开心。

继续下去,计划完成一项,接下来就是下面的项目了。加油

composer 源码小记录

话说在住院的时候,想起来了以前看过的一个帖子有说在加载 psr4 的时候记录的 namespace 的长度是用来替换路径用的。

但是在今天中午去看加载源码的时候发现已经没有这个替换了。于是赶紧翻看 github 上面的改动记录,发现已经不使用那种方式了,而是采用截取的方式去获取文件名什么的。然后路径就直接使用现存的了。

代码如下图

图片alt

估计等在过一段那个 namespace 的长度也可以不用了,但是看改动记录,还是存在,静待观察

php curl 模拟上传遇到的小问题记录

今天在公司写东西的时候遇到了一个奇怪的小问题,就是在用 curl 模拟文件上传的时候发现上传失败,最初始采用的代码如下

[
    'file' => '@' . $fileName
]

通过查看文档发现了下面的一段说明

图片alt

从这可以得知,CURLOPT_SAFE_UPLOAD 这个参数可以控制,由于 php 5.5 以前的默认值是 false ,所以我可能以前并没有关注,但是在 php 5.6 的时候这个默认值是 true 了,所以当我们想要采用上面那种方式就需要设置 CURLOPT_SAFE_UPLOAD 这个值为 false 才可以使用。

但是需要注意的是在 php 7 以后这个属性被删除了,所以当我们想要上传的时候,必须采用 CURLFile 才可以上传。具体可以参见 http://php.net/manual/zh/class.curlfile.php

所以现在就不要考虑 CURLOPT_SAFE_UPLOAD 这个参数了,以后在模拟上传的时候直接采用 CURLFile 就可以了

升级 homestead 小记录

又是一个周末,自觉状态调整的不错了,于是就像弄点东西玩,然后,就想到了升级相关版本,vagrant 和 virtual box 都升级完了,然后我又升级了 homestea 的脚本,并且切换到了最新的 release tag 上,最后执行 vagrant box update,会提示 ==> homestead-7: Box 'laravel/homestead' not installed, can't check for updates. 这个么个东西,在网上简单的看了一下也没发现什么

最后灵机一动,切换会原来的 tag,然后再升级 box 再换到最新的 tag 就 ok 了。

哈哈,太机智了,记录一下顺序吧,以后就不会出问题了,先升级 box,然后升级 homestead 脚本,最后切换到脚本最新的 release 的 tag 就大功告成了,继续写代码

对了,升级以后还得重新配置一下 composer 中国镜像

用 php 来实现微信跳一跳 (适用于安卓手机)

作为一个程序员,当微信出了跳一跳后,排行榜的前三名就没有低于 1k 分的,我甚是伤心,所以 php 也要来跳一跳,今天发出来的版本貌似已经是第五版了,每天晚上都回家写一个方法,分数越来越高,到了现在,运行速度和分数都已经让我满意了。刚才打的最高分。

github 地址: https://github.com/crazyhl/php_jump_auto

分数

下面说一下实现的思路,先用 adb 截图,然后再这个截图上寻找小人的位置,以及需要跳跃到的方块的位置,最后再利用 adb 模拟长按跳过去就行了。

分开说下,如何找小人。利用先确认一个小人身上的色块的色值,然后在再整图上找这个色值区间值的一个范围。

如下图 图片alt

再调整色块值之后,我觉得这个范围比较合适,所以我就定了下来,然后再计算这个范围的中心点,当做小人的中心点。

然后再去寻找需要需要跳跃的目标,这里有个优化后的方法,首先我们确认了小人的位置,然后就搜索半张图就可以了,然后寻找两个点,跟标准值差异的最高点以及最右的一个点,为什么不寻找左侧点,是因为有阴影会影响搜索的。

等找到最高点和最右点之后,取两个点的交点就确认跳跃的目标点了。

这样人物点位和目标点都确认好了,然后利用勾股定理就可以计算出来距离了。这个距离跟最终的长按时间是有一个比例了,这个比例自己测一测就能大概找出来了。

这样,一个跟 php 没有太大关系的辅助就成了,最后,铺天盖地求 star