>  기사  >  php教程  >  PHP 훈련 튜토리얼, 눈에 띄지 않는 PHP의 몇 가지 팁

PHP 훈련 튜토리얼, 눈에 띄지 않는 PHP의 몇 가지 팁

巴扎黑
巴扎黑원래의
2016-11-07 16:33:511531검색

눈에 띄지 않는 작은 트릭이라고 하지만 실제로는 일반적으로 사용되지 않는 일상적인 응용 프로그램이라고 해야 합니다. 아는 것과 사용할 수 있는 것은 별개입니다. , 그리고 그것을 연습하는 것은 또 다른 일입니다. 그리고 마스터가 되려면 탄탄한 기본 기술이 필요합니다.

Str_repeat

Perl의 x와 유사하게 문자열을 반복적으로 출력하는 데 의존합니다

php -r 'echostr_repeat("ABC",5),"n";'

 ABCABCABCABCABC

 substr

 문자열 가로채기 등의 문자 가로채기에 사용됩니다. 첫 번째 문자:

$string = 'abcdefg'

substr($string,0,1) 은 a를 얻습니다. 하지만 이제는 $string[0]을 사용하는 데 익숙해졌습니다. 그런데 string의 길이가 7인지 판단할 때 isset($string[6])이 대신 사용됩니다. 왜냐하면 isset이 strlen보다 빠르다고 하기 때문입니다.

Trim

Trim은 앞뒤 공백과 후행 줄 바꿈을 제거하는 데 사용되므로 오랫동안 사용했기 때문에 특별히 설계된 것은 아닙니다. 작동할 것으로 예상합니다. 예를 들어 '%abcdef%'

Trim('%abcdef%','%')의 %를 제거하기 위해 시작과 끝에서 원하지 않는 문자를 제거하는 매개변수 목록을 허용합니다.

계속

이 사람은 다음 루프를 건너뛰는 데 사용됩니다. 오랫동안 사용한 후에는 항상 매개변수가 없다고 생각했는데, 한 번은 3개에서 뛰쳐나오고 싶었습니다. -level loop...

ini_set

네트워크 연결을 기반으로 프로그램을 작성할 때 내결함성을 위해 소켓 시간 초과를 설정해야 합니다. php.ini에 정의된 기본 시간은 60입니다. 초

소켓 기반 스트림의 기본 시간 제한(초)

;http://php.net/default-socket-timeout

default_socket_timeout = 60

php 수동 .ini 구성에서 ini_set을 사용하여 PHP를 수정할 수 있으므로 다음과 같이 생각했습니다.

ini_set('default_socket_timeout',6)

작성자가 일부를 사용하는 경우 새로 발견한 함수, 내 습관은 다음과 같습니다.

var_dump(ini_set('default_socket_timeout',6))

실행 결과 프롬프트:

string(2) "60"

어? 설정이 실패했나요? 여러 대의 기계를 사용해 보았지만 여전히 이렇게 보입니다. 오랫동안 조사한 끝에 마침내 다음과 같은 문제가 발견되었습니다. PHP 매뉴얼:

반환 값 ​​

성공하면 이전 값을 반환하고, 실패하면 FALSE를 반환합니다.

아, 매뉴얼을 너무 무심코 읽었네요! > posix_kill

PHP를 업데이트하기 위해 nginx의 로그 회전 스크립트를 작성했습니다. 새 로그를 다시 생성할 때 posix_kill을 사용했습니다.

posix_kill($nginx_pid,SIGUSR1)

제가 사용한 N 머신에서는 이 기능이 정상적으로 작동했습니다. 하지만 이 스크립트를 친구에게 빌려줬더니 머신에서 다음과 같이 보고했습니다.

경고: posix_kill()에서는 매개변수 2가 길어질 것으로 예상합니다. 주어진

함수 프로토타입을 보세요: bool posix_kill ( int$ pid, int $sig )

두 번째 매개변수는 int에 주어야 합니다. SIGUSR1이 내 컴퓨터에서는 인식하지만 내 컴퓨터에서는 인식하지 못하는 이유는 무엇입니까? 친구의 컴퓨터? PHP 버전 문제? 내 친구의 PHP 버전이 실제로는 더 좋습니다.

SIGUSR1에 해당하는 int 값을 찾기 위해 오랫동안 온라인에서 검색했지만 결국 찾을 수 없었습니다. , 나는 kill 명령을 연구하고 실수로 다음을 입력했습니다: kill -l

1) SIGHUP 2) SIGINT 3)SIGQUIT 4) SIGILL

5) SIGTRAP 6) SIGABRT 7)SIGEMT SIGFPE

9) SIGKILL 10) SIGBUS 11)SIGSEGV 12) SIGSYS

13) SIGPIPE 14) SIGALRM 15)SIGTERM 16) SIGURG

17) SIGSTOP 18) SIGTSTP 19 ) Sigcont 20) Sigchld
21) Sigttin 22) Sigttou 23) Sigttou 23) Sigio 24) sigxc pu

25) Sigxfsz 26) Sigvtalrm27) Sigprof 28) Sigwinch 29) Siginfo 30) SIGUSR1 31)SIGUSR2

위 내용은 Mac용인데, Linux용 SIGUSR1의 해당 값은 동일하지 않습니다.

1) SIGHUP 2) SIGINT 3)SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUSSIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13)SIGPIPE 14) SIGALRM 15) SIGTERM

1 6 ) SIGSTKFLT 17) SIGCHLD18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) S IGTTOU 23)SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) ) 시그윈치 29 ) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35)SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39)SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44)SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+1550) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

  53) SIGRTMAX-11 54)SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 

  58) SIGRTMAX-6 59)SIGRTMAX-5 60) SIGRTMAX-4 61 ) SIGRTMAX-3 62) SIGRTMAX-2 

  63) SIGRTMAX-1 64) SIGRTMAX 


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.