PHP 版本的startsWith 和 endsWith
JS处理字符串的时候,有些地方还是很方便的。
但是PHP也不是很逊色,也有对应的解决方案。
1 | function startsWith($haystack, $needle){ |
不理解strcmp
和substr_compare
的可以自己去查查文档
JS处理字符串的时候,有些地方还是很方便的。
但是PHP也不是很逊色,也有对应的解决方案。
1 | function startsWith($haystack, $needle){ |
不理解strcmp
和substr_compare
的可以自己去查查文档
业务需求,将record表做了分表处理,那么问题就出现了,以前的接口就有问题了。
1 | SELECT * FROM record WHRER xxxx; |
这样的SQL语句就不能正常执行了,只好不会再有新的数据进来了,结果不是需要的数据。
于是找了一个我认为算是比较笨拙,但是还能用的方法,就是使用union的方式查询。
1 | SELECT * FROM ( |
你是否有更好的方法,可以跟我联系。
如何查看一个文件的修改历史记录:
找到某个文件的修改历史
1 | git log --pretty=oneline ./static/js/detail.js |
结果会列出下面的结果
e4f37d08ce8e9d729a824568f3a23d4eeb21ba30 恢复误删的js
85e4a01822b690da8b152d780271a12d9a3b8dd9 添加 反馈详情页面
0d3893c8c4f8b124ca50731f02334b70b88ebe5e 更新页面
查看具体的历史修改记录
1 | git show e4f37d08ce8e9d729a824568f3a23d4eeb21ba30 |
结果会看到如下的修改信息
commit e4f37d08ce8e9d729a824568f3a23d4eeb21ba30
Author: durban <xx@xx>
Date: Mon Dec 21 11:26:20 2015 +0800
恢复误删的js
diff –git a/gulpfile.js b/gulpfile.js
index 6563d1b..da42836 100644
— a/gulpfile.js
+++ b/gulpfile.js
@@ -78,6 +78,16 @@ gulp.task(‘fonts-replace’, [‘publish-fonts’], () => {
.pipe(gulp.dest('./static/css/tmp'));
});
+gulp.task(‘images-replace’, [‘webpack’,’publish-images’], () => {
return gulp.src([‘./static/build/rev/images/*.json’, ‘./.public/js/**/*.js’])
.pipe(revCollector({
dirReplacements: {
'/images/': ''
}
}))
.pipe(gulp.dest(‘./.public/js/**/*.js’));
+});
是不是很清晰。Yeah!
如果想查看单个文件的历史记录,也可以这样子的。
1 | git log -p filename |
WebStorm快捷键(Mac版)
⌘ ——Command
⌃ ——Control
⌥ ——alt
⇧ ——Shift
⇪ ——Caps Lock
fn ——功能键就是fn
Command+alt+T 用 (if..else, try..catch, for, etc.)包住
Command+/ 注释/取消注释的行注释
Command+alt+/ 注释/取消注释与块注释
alt+↑ 向上选取代码块
alt+↓ 向下选取代码块
Command+alt+L 格式化代码
tab,shift+tab 调整缩进
Control+alt+I 快速调整缩进
Command+C 复制
Command+X 剪切
Command+V 粘贴
Command+shift+V 从剪贴板里选择粘贴
Command+D 复制代码副本
Command+delete 删除当前行
Control+Shift+J 清除缩进变成单行
shift+回车 快速换行
Command+回车 换行光标还在原先位置
Command+shift+U 大小写转换
Command+shift+[,Command+shift+] 文件选项卡快速切换
Command+加号,Command+减号 收缩代码块
Command+shift+加号,Command+shift+减号 收缩整个文档的代码块
Command+W 关闭当前文件选项卡
alt+单击 光标在多处定位
Control+shift+J 把下面行的缩进收上来
shift + F6 高级修改,可快速修改光标所在的标签、变量、函数等
alt+/ 代码补全
Control+alt+R 运行项目
Command+Control+R 运行Debug
Command+F8 添加断点
Command+shift+F8 打开断点列表
Command+O 跳转到某个类
Command+shift+O 跳转到某个文件
Command+alt+O 跳转到某个符号
Control+←,Control+→ 转到上/下一个编辑器选项卡
F12 打开之前打开的工具窗口(TODO、终端等)
Command+L 跳转行
Command+E 弹出最近文件
Command+alt+←,Command+alt+→ 向前向后导航到代码块交接处(一般是空行处)
Command+shift+delete 导航到上一个编辑位置的位置
Command+B 跳转到变量声明处
Control+J 获取变量相关信息(类型、注释等,注释是拿上一行的注释)
Command+Y 小浮窗显示变量声明时的行
Command+[,Command+] 光标现在的位置和之前的位置切换
Command+F12 文件结构弹出式菜单
alt+H 类的层次结构
F2,shift+F2 切换到上\下一个突出错误的位置
Command+↑ 跳转到导航栏
F3 添加书签
alt+F3 添加带助记的书签
alt+1,alt+2… 切换到相应助记的书签位置
Command+F3 打开书签列表
control+V 打开VST小浮窗
Command+K 提交项目
Command+T 更新项目
alt+shift+C 打开最近修改列表
Command+F 搜索
Command+R 替换
Command+G 查找下一个
Command+shift+G 查找下一个
Command+shift+F 按路径搜索
Command+shift+R 按路径替换
Command+F7 向声明的地方搜索并选中
Command+shift+F7 打开搜索框进行搜索
Command+alt+F7 打开小浮窗显示搜索列表
F5 复制文件到某个目录
F6 移动文件到某个目录
Command+delete 安全删除
shift+F6 重命名
双击shift 弹出小浮窗搜索所有
Command+切换项目 Command+shift+ 反向切换项目
Command+shift+A 整个工程的查找操作
Command+1,Command+2… 打开各种工具窗口
alt+shift+F 把文件添加到收藏夹
alt+shift+I 打开项目描述
alt+~ 快速切换当前计划
Command+, 设置编辑器
Control+Tab 选项卡和工具窗口之间进行切换
alert+回车 显示npm版本升级列表
写移动页面时给一个图片添加样式如下
1 | img{ |
在IOS上正常,部分安卓的手机却不能正常显示(例如vivo手机),查阅了资料后发现在安卓低版本的手机上border-radius这个css 属性确实存在该问题以及发现一些其他的问题,特此记下!
一、Android2.3 自带浏览器不支持%
通常我们实现一个圆只需要border-radius:50%
就可以了,但是在Android2.3中是不支持百分比的,要兼容的话我们只能使用一个较大值例如border-radius:999px;
二、Android及Safari低版本img的圆角问题(就是本文开头提到的问题)
当img元素有border时设置border-radius会导致圆角变形(如图)
border-radius在Android低版本的bug
解决办法就是在外面嵌套一个父元素然后设置其border和border-radius即可解决。
三、android 4.2.x背景色溢出和不支持border-radius 缩写
在Android4.2.x系统自带浏览器中,同时设置了border-radius和背景色的时候,背景色会溢出到圆角外,需要使用background-clip:padding-box;
来修复。
android 4.2.x不支持border-radius 缩写解决办法就是使用border-radius的四个扩写属性,缩写属性放在后面。如下(自己借了几个手机并没发现这个问题)
1 | .s{ |
给你一个淘宝客的短链,如果获取他跳转后的地址,这是我最近在做个一个程序,使用node开发总体来说还是挺简答的。
大概说下流程
第一步:解析出这个短链最终的真实地址
我的第一个想法是,是不是需要啥啥接口才可以哇。但是我又想,这也太麻烦了,如果我访问了这个链接是不是就可以得到真实的链接了。好,到网上找到了一个request库,还是有实例哦,简单的不要不要的,赶紧弄了下,果然是有结果的。
1 | var r = request(url, function(err, res, body) { |
可以了。地址拿到了,用浏览器打开试试,结果还是有问题,这个地址不是产品的真实地址,还是要做一个跳转的,好吧。
我又想,这个页面究竟是个啥,打开一看,其实里面就是个js函数,执行了就简单了,这个对于node来说真实小菜一碟哇。
突然让我想起来urllib这个库,嗯,不错很好用的。
开始用的时候,直接请求就以为能得到结果了,结果不是的,还需要在请求中加上referer,哈哈,也许是个漏洞吧,这样我就能解析出真实的地址了。
那先解决第一个问题就是node如何营造一个dom的环境,玩过dom的人肯定知道jsdom啦,然后在进行urllib请求根据302跳转获取到。
1 | jsdom.env(uri, function(err, window) { |
之后就是获取最终headers里面的location
1 | var urlRes = urllib.request(real_jump_address, { |
最近进行了一次composer的update操作。
然后在我自己的项目里面运行了。
1 | composer install |
的操作,结果出现了很多的错误以前从未见过。
Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist
The “yiisoft/yii2-composer” plugin requires composer-plugin-api 1.0.0, this WIL L break in the future and it should be fixed ASAP (require ^1.0 for example).
[ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist
[ErrorException]
Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository::w hatProvides() should be compatible with Composer\Repository\ComposerRepository:: whatProvides(Composer\DependencyResolver\Pool $pool, $name, $bypassFilters = fal se)
解决方案就是:更新你的 fxp/composer-asset-plugin
:
1 | php composer.phar global update fxp/composer-asset-plugin --no-plugins |
如果还是不行的话,可以试试下面这个
1 | composer global require fxp/composer-asset-plugin --no-plugins |
使用uglify在做js的处理过程中,会遇到js的各种问题,而导致uglify自己报错,但是往往我们不知道具体是哪个文件的js报错了。
这样情况下
1 | uglify().on('error', gutil.log) |
gulp-util就能很好的解决我们的问题。
《长安的荔枝》第一集以紧凑的叙事、鲜活的角色和精良的制作,为观众呈现了一个充满权谋与荒诞的“职场生存记”。结合原著内核与影视化改编,可从以下角度解读:
“不可能任务”的戏剧张力
李善德(雷佳音 饰)作为九品小吏,被同僚设计接下从岭南运送鲜荔枝到长安的“死亡任务”。剧中通过“荔枝一日色变,三日味改”的设定,强化了时间紧迫感与任务荒诞性,而官僚体系层层推诿的“踢皮球”现象,则暗讽了职场甩锅文化。
对比原著:剧版增加了“房贷压力”作为李善德接任务的动机,更贴近现代打工人的生存焦虑。
双线叙事初现雏形
除主线任务外,郑平安(岳云鹏 饰)作为左相派出的卧底,暗中调查岭南刺史行贿右相的阴谋。两条线索在岭南交汇,形成“物流难题”与“政斗暗线”的交织,为后续冲突埋下伏笔。
雷佳音的“老实人困境”
李善德被塑造成一个隐忍懦弱却心怀责任感的基层公务员。剧中通过“被同僚灌酒”“被上司算计”等细节,刻画出其面对强权时的无力感。而得知任务真相后“瘫坐痛哭”的镜头,精准传递了小人物被命运碾压的窒息感。
岳云鹏的喜剧破局
郑平安以“陪酒侍郎”身份登场,凭借夸张的肢体语言(如缩肩抖腿、谄媚赔笑)和方言台词(如“房子看了没”),贡献了全剧首批笑点。其表面圆滑、内心重义的性格反差,为沉重剧情注入轻松气息。
服化道的考据与创新
剧组对唐代官服形制、岭南服饰风格进行严谨还原,如苏谅(吕凉 饰)的胡服融合丝路元素,阿僮(周美君 饰)的衣裙采用草木染工艺。同时,岭南场景通过湿热色调与奇珍异兽道具,构建出异域风情。
镜头语言的隐喻性
李善德赎回宅院时,慢镜头扫过马车外欢呼的群演,再聚焦其强颜欢笑的脸庞,暗示“买房”背后是父爱与生存压力的双重枷锁。暴雨中荔枝运输的追逐戏,则以倾斜构图强化危机感。
热度与口碑初显
首播当日腾讯视频热度突破23000,豆瓣开分8.3。观众盛赞“比悬疑剧更刺激”“岳云鹏颠覆形象”,但也对“剧情节奏过快”(如前4集已出现岭南线)提出疑虑。
改编得失讨论
剧版新增郑平安的故事线,虽丰富了权谋层次,但部分原著粉认为“偏离了马伯庸‘一人一事件’的极简叙事”。此外,喜剧元素与历史正剧风格的混搭,存在“违和感”争议。
相较于大鹏执导的同名电影(7月25日上映),剧版更注重“职场生态”的细腻刻画,如通过“荔枝小队”成员性格差异(富二代苏谅、纯真阿僮等)探讨团队协作。而电影版或侧重史诗感与视觉奇观,两者形成互补。
总结:第一集以高完成度奠定了“古装职场喜剧+历史权谋”的基调,雷佳音与岳云鹏的化学反应、细节中的人性洞察,均展现出超越普通IP改编的潜力。后续能否避免“虎头蛇尾”,取决于岭南线叙事密度与情感爆点的平衡。
原文
Hello gophers,
We plan to issue Go 1.25RC2, Go 1.24.5 and Go 1.23.11 during US business hours on Tuesday, July 8.
These minor releases include PRIVATE security fixes to the toolchain, covering the following CVE:
Following our security policy, this is the pre-announcement of those releases.
Thanks,
David for the Go team
大概是意思是
你好,Go开发者们,
我们计划在 7 月 8 日星期二的美国营业时间内发布 Go 1.25RC2、Go 1.24.5 和 Go 1.23.11。
这些次要版本包括对工具链的 PRIVATE 安全修复,涵盖以下 CVE:
根据我们的安全策略,这是这些版本的预先公告。
谢谢
Go 团队的 David