批量替换
批量替换sjdt.online/img
为yinyang.space/img
的方法。
1 | perl -pi -e 's|sjdt.online/img|yinyang.space/img|g' `find ./ -type f` |
1 | # 方法1:直接readfile |
1 | $myfile = fwrite("test.txt","w") or die("Unable to open file."); |
1 | # 设置cookie |
1 | # 获取格式化日期时间字符串 |
可以复制如下脚本保存并本地执行,用来下载composer.phar文件
1 |
|
执行
1 | chmod a+x install.sh |
执行之后会看到本地目录下载好了composer.phar
,
然后执行
1 | mv composer.phar /usr/local/bin/composer |
使得composer可以在任意目录使用,这样就安装完成了。
敲入composer
命令,或者composer -V
来确认composer是否安装成功。
Preference -> Languages & Frameworks -> PHP -> Composer
使用vscode时经常需要重复性插入相同的文件头代码,或者Jekyll这种要求的固定格式文件头。使用psioniq File Header
可以方便地满足这一需求,而且可以根据不同类型的文件设置生成不同的文件头内容和格式。
command + shift + P 调出命令面板找到Extensions:Install Extensions
,或者command + shift + X后在左侧切换到应用商店,搜索psioniq File Header
,找到后安装即可
command + shift + P 打开命令面板后输入settings,选择打开设置,打开settings.json
文件
在settings.json
中添加如下内容后保存:
1 | "psi-header.config": { |
效果:新建一个markdown文件,然后连按两次热键:option + contrl + H 来自动添加文件头。
Mac环境的php开发环境搭建推荐另一篇文章
这里仅作记录备忘一下。
Mac自带Apache服务,配置文件在/etc/apache2/httpd.conf
把默认的下面两行注释放开
1 | LoadModule userdir_module libexec/apache2/mod_userdir.so |
.
修改默认目录,默认目录在/Library/WebServer/Documents下:
1 | #DocumentRoot "/Library/WebServer/Documents" |
添加如下内容:
1 | <Directory "/Users/yiny/Sites"> |
启动停止命令:
1 | # 启动 |
安装php
1 | brew install php |
1 | brew services start php |
php.ini 配置文件位置:
1 | /usr/local/etc/php/7.4 |
最近有个项目需要对批处理任务进行优化,批处理使用120个进程执行任务,但是任务之间存在依赖关系,任务执行的日志中记载了每个任务开始和结束的时间,看起来不够直观,于是考虑使用python和matplotlib进行可视化加以分析。
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。
这里仅仅用到了Matplotlib的极小部分功能,画线和加文字:
1 | # 绘制line |
日志中的时间格式为数值型表示的时间,比如12345表示的是1:23:45,需要进行一下转换。
1 | def conv2NormalTime(digitalTime): |
由于需要使用秒单位作为参数调用matplotlib,因此需要将时间转换为秒单位,添加函数实现。
1 | def conv2Seconds(digitalTime): |
绘图代码
1 | import matplotlib.pyplot as plt |
首先配置MAMP的Hosts,在MAMP -> Main Window
这里保留默认配置
修改Apache默认的端口为80,Nginx为8000,MySQL为3316
这样基本的Apache+MySQL+PHP环境就配置好了。
phpstorm 中新建php project,项目文档位置选择刚刚MAMP配置的Document Root目录下:/Applications/MAMP/htdocs/sjdt.online
选择:phpstorm -> Preference -> Build,Execution,Deployment -> Deployment,单击右侧的 + 加号新建一个服务器,类型选择In place,名字随便起,这里使用mamp
在Connection Tab页中配置Web server URL为http://localhost
在Mappings Tab页配置本地路径和远程路径之间的映射,这里选择将本地工程目录映射为远程的sjdt.online目录
这样在phpstorm中就可以使用PHPStorm中的preview按钮快速在浏览器中预览页面效果了。
实际工作中经常会遇到需要同时开发多个项目或者在一个Host上配置多个域名的情况,使用VirtualHost配置可以很好的解决这个问题。
首先,修改本地/etc/hosts解析文件,添加如下内容:
1 | 127.0.0.1 localhost |
然后修改MAMP的Apache配置文件:/Applications/MAMP/conf/apache/httpd.conf
,找到Virtual hosts的配置的位置:
1 | # Virtual hosts |
去掉Include前面的注释,像这样,然后保存退出:
1 | # Virtual hosts |
然后,编辑修改VirtualHosts配置文件:/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
:
尽管显示virtual host已经生效了,但是实际上是不好用的,MAMP的Document Root一直指向了MAMP的htdoc根目录,不知道是MAMP的bug还是httpd配置有问题
于是换个思路,使用MAMP的添加Hosts来解决开发环境多个域名的问题,实际生产上线使用VirtualHost。
在MAMP的Hosts界面中使用左下角的”+”加号按钮新建一个Host,Hostname输入sjdt.online.test
修改DocumentRoot:/Users/yiny/Sites/sjdt.online
phpstorm中新建项目,项目目录选择刚刚Apache中Document Root的位置/Users/yiny/Sites/sjdt.online
选择:phpstorm -> Preference -> Build,Execution,Deployment -> Deployment,单击右侧的 + 加号新建一个服务器mbp,Web server URL填写本地测试域名:http://sjdt.online.test
效果: