fairycat

Created:
Updated:

Linux 命令删除文本文件指定行

删除第7行,添加参数 -i 标识修改源文件,否则不修改源文件而通过管道输出结果

sed -i '7d' filename

使用 sed 删除最后一行

sed -i '$d' filename.txt

删除多行,闭区间

sed -i '1,9d' log.log

删除包含字符串的行,区分大小写,可以使用正则

sed -i '/string/d' filename

删除以字词开头的行

sed -i '/^word/d' filename

删除所有空行

sed -i '/^$/d' filename
Created:
Updated:

微信开发者工具异常 Error: Error: ENOENT: no such file or directory

刚刚在试用微信开发者工具,发现恶心的问题,编译或上传都会报错,Error: Error: ENOENT: no such file or directory。而后边报错指向的路径,是我刚删除的一个测试页面。

使用的版本是 1.06.2209190,项目是刚刚下载的测试项目,app.json 添加了测试页面,在新页面做了个输出测试,首页添加链接到测试页。这一切都没有问题。当我把测试页面删除,同时在 app.json 中删除了相关项,首页中的链接也删除了。之后就是一直报错了,清楚缓存也没有用。

网上找了一些答案,没啥用。最后重启开发者工具就好了。

Created:
Updated:

在 PHP 中从字符串创建流

在 PHP 中处理字符串,有时候把它转换成 Stream 来处理会很方便。比如处理不同来源的数据,有的数据源是流而有的直接给出字符串了,统一转成流可以统一一个输出流程。

Created:
Updated:

Html5 的 setCustomValidity 需要刷新页面的原因

Html5 中丰富了表单的验证,当验证不通过的时候会出现相应的提示。而 setCustomValidity 可以自定义提示内容。使用该方法添加自定义内容后,当经过验证时需要清除自定义内容,否则该输入框一直处于错误状态。

使用不当的情况下,当输入错误内容,提示错误后,再输入正确的内容也不会通过验证。需要刷新页面才能继续使用。这就是对 setCustomValidity 理解错误的原因。

Created:
Updated:
Fairycat

网络运营商广告劫持之js虚假数据包:http劫持

当浏览器右下角弹出小广告的时候,不同的人都有不同的反应。很多人不以为然,认为这无所谓。有的人认为这是网站本身带有的广告,确实部分网站会带有这种广告,但是这种广告并不全是网站本身带有的,可能是网络运营商注入的广告。

对广告抱着无所谓的态度,或者认为这是网站本身带有广告的、不可避免的,这些人明显占大多数,这才让运营商注入广告的行为一直很猖狂。如果你在意这些广告,影响了自己,可以了解这是如何实现的。

本文不会提及所有的广告注入的方法,只解释虚假js。稍微解释DNS劫持内容。

Created:
Updated:
Fairycat

Laravel服务拓展方法,无需提前解析服务

Laravel中的各种可以拓展的服务、驱动,例如Filesystem、Notification等。需要拓展的服务,在自定义的服务提供者的boot方法中,extend添加拓展就可以。

对一个服务直接添加拓展,该服务还没使用到的时候就已经被解析了。要对一个延迟解析的服务添加拓展,这么做是不是有些欠妥。

那么为了达到延迟解析的效果,就是把需要的拓展,传给application,而不是直接给服务添加拓展。这样,在使用到该服务的时候,application在解析该服务的时候,会把拓展添加上去的。