PHP 명령줄(cli) mode_php 팁에 보고된 로드 경로 오류를 요구하는 솔루션

WBOY
풀어 주다: 2016-05-16 20:04:18
원래의
1122명이 탐색했습니다.

오늘 동료가 갑자기 예약된 작업을 수행하기 위해 작성한 PHP 스크립트가 항상 실행되지 않는다고 말했습니다.

스크립트 자체는 매우 간단합니다. 몇 개의 라이브러리 파일만 포함되어 있으며 함수에 오류가 없어야 하며 이 함수는 문제가 없습니다. 브라우저를 사용하여 로컬로 페이지에 접속했는데, 실행에는 문제가 없는 것 같았습니다. 동료의 예약된 작업에 문제가 있는 것 같았습니다. 다시 명령줄을 열어서 php를 이용해 스크립트를 직접 실행해 보았는데, require include 파일에 오류가 있는 것 같았습니다.

원인은 모르겠지만 에러 리포트를 보니 경로가 잘못됐네요. 상대경로와 관련이 있는 것 같아서 상대경로를 모두 절대경로로 변경한 뒤 실행해봤습니다. 문제가 해결되었습니다.

바이두에서 검색해보니 PHP를 이용해 스크립트를 실행할 때 스크립트가 실행되는 위치가 현재 PHP 명령이 실행되는 경로여서 상대경로가 잘못된 것을 알게 되었습니다. 문제를 해결하는 방법에는 두 가지가 있습니다.

1. 대신 절대 경로를 사용하는 것이 더 번거롭습니다. 포함된 모든 파일에는 직접 포함된 파일 경로가 포함됩니다. 그 중 하나가 잘못되면 오류가 발생할 수 있으므로 해당 파일을 실행할 때만 사용할 수 있습니다. 비교적 간단합니다.

2. chdir 함수를 사용하여 현재 실행 디렉터리를 파일이 있는 디렉터리로 변경합니다. chdir(dirname(__FILE__));

마지막으로 PHP의 cli 명령줄 모드를 간략하게 소개하겠습니다

먼저 PHP의 CLI(명령줄 인터페이스)모드

로 들어갑니다.
cyguin-> $ ./php --ini(显示配置文件信息)
로그인 후 복사

에 다음이 표시됩니다.

configuration file(php.ini) path: c:/Windows
Loaded configuration file: c:/wamp/bin/php/php5.3.0/php.ini
scan for additional .ini files in: (none)
additional .ini files parsed: (none)
로그인 후 복사

$./php --help(PHP 관련 정보 표시)
$./php --rf ( 함수에 대한 정보 표시)
$./php --fc ( 클래스 정보 표시)
$./php --re ( 확장 정보 표시)
$./php --ri ( 확장 구성 표시)

$./php -l : 구문 확인
예: $./php -l c:/wamp/www/1.php
실행 결과: xxx
에서 구문 오류가 감지되지 않았습니다.

$./php -v : 버전 정보 및 실행 모드 cgi/cli 표시
실행 결과:
PHP 5.3.0(cli)(작성일: 2009년 6월 29일 21:25:23)
저작권 (c) 1997-2009 PHP 그룹
Zend 엔진 v2.3.0, 저작권 (c) 1998-2009 Zend Technologies

$./php -f 파일 구문 분석 및 실행
예: $./php -f c:/wamp/www/1.php

$./php -h : 도움말 파일 표시

$./php -r : 태그를 사용하지 않고 PHP 코드 실행 예: $./php -r 'print("hello!");' 또는 $./php -r 'echo "hello!";'
실행 결과: 안녕하세요!

$./php -a : 대화형 모드로 전환 Linux에서는 다음과 같이 표시됩니다.

php> 창문 아래:
필수 입력:

<&#63;php
echo "hello world!";
&#63;>
로그인 후 복사

그런 다음 ctl c를 사용하여 출력을 얻으십시오.
PHP5.3.0에서는 결과를 직접 얻을 수 없기 때문에 직접 사용할 수 없습니다.

<&#63;php
echo "hello world!";
&#63;>
로그인 후 복사
ctl z를 먼저 입력한 다음 ctl c를 입력하면 결과가 표시됩니다.


$./php -c : php.ini를 검색할 위치를 지정하거나 특정 ini 파일을 지정합니다.

$./php -n : php.ini를 사용하지 마세요

$./php -d foo [=bar] : INI 파일의 foo 항목 값을 bar로 정의합니다

$./php -m : 모든 모듈, php 모듈, zend 모듈 표시

$./php -e : 디버거/프로파일러에 대한 확장 정보 생성

$./php -B : 표준 입력 확인 실행을 처리하는 코드입니다. PHP5의 새로운 기능. 예:
$./php -B 'echo "hello world";'
출력 결과: hello world

$./php -R : 각 줄마다 실행되는 PHP 코드입니다. PHP5의 새로운 기능.

$./php -F <파일> :

$./php -H : 입력 처리 후 실행되는 코드

$./php -s : HTML 구문 강조 표시 코드

$./php -w : 공백과 주석을 제거한 코드 가져오기 예:
$./php -w c:/www/1.php

$./php -z : Zend 확장 파일 로드

$pwd: 현재 경로 표시

--enable-cli, --enable-cgi

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿