메뉴 건너뛰기

enjoyTools.net

리눅스에서 php -r

2018.07.25 08:54

꿈돌이 조회 수:116

http://php.net/manual/en/features.commandline.options.php

따옴표 문제가 있다고 한다.

 

-r --run

Allows execution of PHP included directly on the command line. The PHP start and end tags (<?php and ?>) are not needed and will cause a parse error if present.

Note:

Care must be taken when using this form of PHP not to collide with command line variable substitution done by the shell.

Example #2 Getting a syntax error when using double quotes

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

The problem here is that sh/bash performs variable substitution even when using double quotes ". Since the variable $foo is unlikely to be defined, it expands to nothing which results in the code passed to PHP for execution actually reading:

$ php -r " = get_defined_constants();"

The correct way would be to use single quotes '. Variables in single-quoted strings are not expanded by sh/bash.

Example #3 Using single quotes to prevent the shell's variable substitution

$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

If using a shell other than sh/bash, further issues might be experienced - if appropriate, a bug report should be opened at » http://bugs.php.net/. It is still easy to run into trouble when trying to use variables (shell or PHP) in commnad-line code, or using backslashes for escaping, so take great care when doing so. You have been warned!

Note:

-r is available in the CLI SAPI, but not in the CGI SAPI.

Note:

This option is only intended for very basic code, so some configuration directives (such as auto_prepend_file and auto_append_file) are ignored in this mode.

 

 

번호 제목 글쓴이 날짜 조회 수
44 윈도우에서 가상머신 또는 다른 곳으로 포트포워딩 꿈돌이 2019.09.02 19
43 윈도우10 배율 (dpi) 변경 스크립트 file 꿈돌이 2019.08.27 26
42 윈도우 작업표시줄에 날짜와 시간 한 줄 표시, 요일 표시 꿈돌이 2019.08.20 33
41 윈도우 cmd에서 저장된 WIFI Profile의 비번 확인 꿈돌이 2019.07.03 92
40 mysql update _priv='Y' root 복구용 꿈돌이 2019.06.25 98
39 리눅스 sh에서 실행파일 삭제 꿈돌이 2019.06.10 99
38 공중파 케이블 vod file 꿈돌이 2019.05.26 201
37 윈도우10 앱 및 기능 에서 삭제 안되는 프로그램을 목록에서 강제로 제거하기 꿈돌이 2019.05.02 165
36 mysql_error() equivalent is mssql_get_last_message() 꿈돌이 2019.03.11 120
35 certbot 수동 갱신 꿈돌이 2019.01.27 100
34 GnuWin32 패키지 목록 페이지 꿈돌이 2018.12.14 81
33 윈도우 10 260자 초과하는 파일경로 허용 꿈돌이 2018.11.03 162
32 라즈베리파이 USB메모리 자동 마운트 꿈돌이 2018.10.30 74
31 윈도우 cmd에서 랜카드 dhcp on/off 꿈돌이 2018.09.29 49
» 리눅스에서 php -r 꿈돌이 2018.07.25 116
29 우분투 USB 리셋 - MS 무선마우스 휠 문제 꿈돌이 2018.06.18 64
28 우분투 키보드 입력 속도 조정 꿈돌이 2018.06.18 3587
27 디버그모드에서 안드로이드 instant run file 꿈돌이 2018.04.20 45
26 라즈베리파이 메모 file 꿈돌이 2018.02.13 71
25 라즈베리파이 전용 7인치 터치LCD 제어 꿈돌이 2018.01.30 260