有时候在项目上需要通过bat脚本来启动一个服务,为了能够让这个脚本正常运行,避免人为操作关闭,需要让这个bat脚本在执行的时候隐藏掉,在后台运行。具体操作办法就是把下列内容拷贝到一个txt文件里面保存成后缀为bat的文件,

@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
----cmd指令,例如,运行d盘的tomcat
d:
cd  d:/tomcat/bin/
startup.bat

然后,把这个脚本的快捷方式放到服务器的启动文件夹里面去,这样以后即使服务器重启了,也可以自动启动这个服务。

在项目上有些客户要求在显示患者姓名的时候,需要把姓名中间的字用*号替代,如果是两个字的把第二个字用*号替代,如果三个字或者三个字以上的姓名,就把中间的全部用*号替代。对于这个需求,前前后后做了三个方案,最后一个方案是比较合适的,其他两种方案都有弊端。

方案一

$PatientName = "张三";
$tag = mb_substr($PatientName,1,1,'UTF-8');
$PatientName = str_replace($tag,"*",$PatientName);

这个方案有两个缺点

缺点1,只能把患者姓名的第二个字用*号替代,如果患者是少数民族或者复姓的,那么他们的姓名可能有好几个字,例如:欧阳明波会替换成欧*明波。这个是不符合需求的。

缺点2,如果患者姓名三个字的,第二个和第三个字是一样的,就会把后面两个字全部替换成*号了。例如:李萌萌就会替换成李**,这样也不符合需求。

方案二,

1651593049209860.png

这个方案有1个缺点,那就是如果姓名只有两个字,就不会替换任何内容了。

方案三

image.png


这个方案就是比较完美的了,不管患者姓名是几个字组成的,都可以把中间的全部替换成*号,如果是两个字的就好吧第二个字替换成*号。姓名是三个字的,后两个字是重叠的,也只会把中间的字替换成*号。

辽公网安备21010602000703号 备案号:冀ICP备2022001219号