PHP-笔记
在这里记录一些关于 PHP 的笔记。
laravel
laravel5.5编译less
1.需要手动安装两个包
1 | npm install less --save-dev |
2.因为less3.x暂不支持 javascriptEnabled ,需要修改 less-loader/dist/index.js
在 var options
后面加上 options.javascriptEnabled = true
3.如果想自定义 webpackConfig 可以使用 mix.webpackConfig()
参数的结构可以参照 node_modules/laravel-mix/src/builder/webpack-default.js
Ant Design of Vue 定制主题示例:
1 | mix.webpackConfig({ |
(此示例中 javascriptEnabled: true 与上面第2条添加 options.javascriptEnabled = true 的作用相同,可二选其一)
最后在 webpack.mix.js
文件中使用 mix.less()
即可
多个项目导致 .env 文件冲突
这个问题多半发生在 Apache上,因为加载.env文件的时候用了 getenv() 和 setenv() 。
这两个函数不是线程安全的,它会将.env文件里面的值设置在进程级别的环境中(process-wide variable)
Apache 使用线程处理请求,当一个进程同时有几个线程的时候,就比较容易发生 ‘串值’ 的情况
解决方案:
执行 php artisan config:cache
正则
匹配 反斜杠 \
在 PHP 中用正则匹配 \
需要用四个反斜杠,即 '/\\\\/'
,用两个的话会在 PHP 解析字符串时被解析为一个。
PS. 貌似,用三个也可以。
JSON
json_encode 造成浮点数精度问题
https://www.php.net/manual/zh/function.json-encode.php
https://www.php.net/manual/zh/ini.core.php#ini.serialize-precision
https://wiki.php.net/rfc/precise_float_value
https://segmentfault.com/a/1190000008737065
http://landcareweb.com/questions/11885/php7-1-json-encode-floatwen-ti