PhpSpreadsheet导出excel时科学计数法
导出excel时默认长数字使用科学计数法导致数值不准确,推荐处理方式:
self::$sheet->setCellValueExplicit($span . $column, $value, DataType::TYPE_STRING);
导出excel时默认长数字使用科学计数法导致数值不准确,推荐处理方式:
self::$sheet->setCellValueExplicit($span . $column, $value, DataType::TYPE_STRING);
copy.sh
批量创建网站程序
#!/bin/bash
#---------------------------------------
# 批量复制部署系统程序
# author: SenSen 1050575278
# date: 2021/10/16
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
#确定版本号
read -p "Enter Version Code to continue : " code
if [ "$code" ]; then
#待部署系统文件夹名称 todo 待通过dns文件获取
sysDir=(t001 t002)
#源文件 依据系统版本
sourceDir="/web/source/${code}.zip";
#判断文件是否存在
if [ ! -f "${sourceDir}" ];then
echo "Error: File not found"
exit
fi
#安装目录
baseDir='/web/oa/'
for f in "${sysDir[@]}"
do
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#复制
cp -rf ${sourceDir} ${baseDir}${f}".zip"
#解压 默认解压到当前
unzip -oq ${baseDir}${f} -d ${baseDir}${f}
#变更用户组
chown -R www:www ${baseDir}${f}
#删除压缩包
rm -rf ${baseDir}${f}".zip"
echo "${curtime} ${f} done"
done
else
echo "Error: param is empty"
ficopy_conf.sh
批量创建系统配置文件
#!/bin/bash
#---------------------------------------
# 批量生成网站配置文件
# author: SenSen 1050575278
# date: 2021/10/16
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
#进入伪静态目录
cd /www/server/panel/vhost/nginx
baseDir='/web/oa/'
sysDir=`ls /web/oa`
#循环生成伪静态
for f in ${sysDir}
do
#复制
cp "thinkphp_conf.conf" "${f}.speaklaw.cn.conf"
#替换
find "${f}.speaklaw.cn.conf" | xargs sed -i "s/sensen/${f}/"
echo "${f} done"
donecopy_rewrite.sh
批量创建系统伪静态配置
#!/bin/bash
#---------------------------------------
# 批量复制部署系统程序
# author: SenSen 1050575278
# date: 2021/10/16
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
#进入伪静态目录
cd /www/server/panel/vhost/rewrite
baseDir='/web/oa/'
sysDir=`ls /web/oa`
#循环生成伪静态
for f in ${sysDir}
do
cp "sensen.speaklaw.cn.conf" "${f}.speaklaw.cn.conf"
echo "${f} done"
done
`sensen.speaklaw.cn.conf` 伪静态配置文件
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}thinkphp_conf.sh 系统配置文件
server
{
listen 80;
server_name sensen.speaklaw.cn;
index index.php index.html index.htm default.php default.htm default.html;
root /web/oa/sensen/public;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-74.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/sensen.speaklaw.cn.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
access_log_bypass_if ($request_uri = '/api/exec_notice');
access_log /www/wwwlogs/sensen.speaklaw.cn.log;
error_log /www/wwwlogs/sensen.speaklaw.cn.error.log;
} 为方便测试使用VMware搭建了LNMP服务器,共享给局域网使用。
配置开机自启动lnmp服务器系统:
"D:\install\vmware12\vmrun.exe" start "F:\Virtual Machines\CentOS\CentOS.vmx"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp注:网络连接使用“桥接模式”,并在“虚拟网络编辑器”中桥接到对应的本机有线或无线网卡上。
编辑vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.10.110
NETMASK=255.255.255.0
NETWORK=192.168.10.0
GATEWAY=192.168.10.1
DNS1=119.29.29.29
DNS2=8.8.8.8
ONBOOT=yes
系统环境:centos7.8 + php7.4 + thinkphp6 + oracle 11g
注意:使用独立下载的扩展容易引起部分错误信息,不建议使用。推荐使用对应php版本中的ext扩展直接编译安装。
【安装oracle客户端】
下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
项目中通过phpoffice(v0.17)生成word文件,插入word的图片默认带黑边框问题。
解决方式:
路径:vendor/phpoffice/phpword/src/PhpWord/TemplateProcess.php
位置:578行 stroked=""$imgTpl = '<w:pict><v:shape type="#_x0000_t75" style="width:{WIDTH};height:{HEIGHT};" stroked=""><v:imagedata r:id="{RID}" o:title=""/></v:shape></w:pict>';
Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。
composer -v 查看版本
推荐使用阿里云全量镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如仅当前项目使用则可去除-g选项。
取消配置:composer config -g --unset repos.packagist
windows下备份mysql数据库脚本,可添加到计划任务中实现定时自动备份。默认存储位置为d:\backup(注:为避免中文乱码,请使用ANSI保存)
@echo off
:begin
rem 接收信息
set input=
set /p input=请输入数据库名称:
if "%input%" == "" (
goto begin
)
echo "正在备份 %input%"
set yyyy=%date:~,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
if /i %time:~0,2% lss 10 set hh=0%time:~1,1%
if /i %time:~0,2% geq 10 set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%
set date=%yyyy%%mm%%dd%
set time=%hh%%mn%%ss%
set filename=%date%_%time%
::设置备份目录
set label=d:\
set backDir=backup\
set pwd=123456
if exist %label%%backDir% (
::echo 目录%label%%backDir%已存在,无需创建
) else (
echo 创建%label%%backDir%
md %label%%backDir%
)
::主要为当前正在开发的数据备份,已上线系统优先依据线上系统数据库
"E:\wamp\bin\mysql\mysql5.7.31\bin\mysqldump">mysqldump --opt -P3306 -u root --password=%pwd% --databases %input% --single-transaction >%label%%backDir%%input%_%filename%.sql
:: more...
echo "完成备份 %input%"
goto begin
check_file_size.sh
#!/bin/bash
#---------------------------------------
# 检测文件大小
# author: SenSen 1050575278
# date: 2021/10/10
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
read -p "Tips! Enter fileName (like 'app/index/controller/Index.php') to continue : " input
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#所在目录
dir='/web/oa/'
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
for f in ${sysDir}
do
/bin/ls -l ${dir}${f}/${input} | awk '{print $5}'
echo ${f}
done