메뉴 건너뛰기

enjoyTools.net

리눅스에서 php -r

2018.07.25 08:54

꿈돌이 조회 수:578

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.

 

 

번호 제목 글쓴이 날짜 조회 수
41 윈도우 cmd에서 저장된 WIFI Profile의 비번 확인 꿈돌이 2019.07.03 2805
40 mysql update _priv='Y' root 복구용 꿈돌이 2019.06.25 220
39 리눅스 sh에서 실행파일 삭제 꿈돌이 2019.06.10 191
38 공중파 케이블 vod file 꿈돌이 2019.05.26 895
37 윈도우10 앱 및 기능 에서 삭제 안되는 프로그램을 목록에서 강제로 제거하기 꿈돌이 2019.05.02 4534
36 mysql_error() equivalent is mssql_get_last_message() 꿈돌이 2019.03.11 300
35 certbot 수동 갱신 꿈돌이 2019.01.27 138
34 GnuWin32 패키지 목록 페이지 꿈돌이 2018.12.14 141
33 윈도우 10 260자 초과하는 파일경로 허용 꿈돌이 2018.11.03 2185
32 라즈베리파이 USB메모리 자동 마운트 꿈돌이 2018.10.30 622
31 윈도우 cmd에서 랜카드 dhcp on/off 꿈돌이 2018.09.29 182
» 리눅스에서 php -r 꿈돌이 2018.07.25 578
29 우분투 USB 리셋 - MS 무선마우스 휠 문제 꿈돌이 2018.06.18 126
28 우분투 키보드 입력 속도 조정 꿈돌이 2018.06.18 32595
27 디버그모드에서 안드로이드 instant run file 꿈돌이 2018.04.20 99
26 라즈베리파이 메모 file 꿈돌이 2018.02.13 269
25 라즈베리파이 전용 7인치 터치LCD 제어 꿈돌이 2018.01.30 1121
24 안드로이드 스마트폰으로 웹서버 만들기 꿈돌이 2018.01.04 895
23 LZ4 압축하기, 해제하기 간단 예제 file 꿈돌이 2017.04.18 13277
22 golang Powershell에서 현재 디렉터리를 gopath로 지정 꿈돌이 2017.04.03 164