标签 php技术 下的文章


<service>
  <id>nginx</id>
  <name>nginx</name>
  <description>nginx</description>
  <executable>c:\nginx\nginx.exe</executable>
  <logpath>c:\nginx\logs</logpath>
  <logmode>roll</logmode>
  <depend></depend>
  <startargument>-p</startargument>
  <startargument>c:\nginx</startargument>
  <stopexecutable>c:\nginx\nginx.exe</stopexecutable>
  <stopargument>-p</stopargument>
  <stopargument>c:\nginx</stopargument>
  <stopargument>-s</stopargument>
  <stopargument>stop</stopargument></service>
install     install the service to Windows Service Controller

  uninstall   uninstall the service
  start       start the service (must be installed before)
  stop        stop the service
  stopwait    stop the service and wait until it's actually stopped
  restart     restart the service
  restart!    self-restart (can be called from child processes)
  status      check the current status of the service
  test        check if the service can be started and then stopped
  testwait    starts the service and waits until a key is pressed then stops the service
  version     print the version info
  help        print the help info (aliases: -h,--help,-?,/?)

<br/>

https://segmentfault.com/a/1190000002667095



fastcgi_index

作用域:http, server, location

当请求以/结尾的时候,会将请求传递给所设置的index.php文件处理。

fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;

fastcgi_split_path_info

作用域:location

Nginx默认获取不到PATH_INFO的值,得通过fastcgi_split_path_info指定定义的正则表达式来给$fastcgi_path_info赋值。

其正则表达式必须要有两个捕获。

  • 第一个捕获的值会重新赋值给$fastcgi_script_name变量。

  • 第二个捕获到的值会重新赋值给$fastcgi_path_info变量。

例子:

location ~ ^(.+\.php)(.*)$ {    fastcgi_split_path_info       ^(.+\.php)(.*)$;    fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;    fastcgi_param PATH_INFO       $fastcgi_path_info;

}

原始请求是 /show.php/article/0001

通过分割,FastCGI得到的结果是:

  • SCRIPT_FILENAME: /path/to/php/show.php

  • PATH_INFO: /article/0001

Nginx在0.7.31以前是没有fastcgi_split_path_info这个指令的,而0.7.x这个版本一直存活了好多年,后面才高歌猛进,导致网上存在大量旧版本通过正则自己设置PATH_INFO的方法。

<br/>

由于各种原因吧,会导致Apache的错误日志越来越大,但是,在项目上如果一直增加下去可能会占满磁盘。所以,我计划关闭errorlog功能,但是通过注释掉ErrorLog这个配置参数,重启Apache后仍然有日志生成。发现这个不起作用。现在改成这样的配置ErrorLog "nul",再重启就不会生成日志了,服务器是Windows系统。

nul相当于Linux系统里面的/dev/null

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

方案一

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

这个方案有两个缺点

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

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

方案二,

1651593049209860.png

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

方案三

image.png


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

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