>  기사  >  백엔드 개발  >  php_php 기술에서 상수 DIRECTORY_SEPARATOR 사용에 대한 심층 분석

php_php 기술에서 상수 DIRECTORY_SEPARATOR 사용에 대한 심층 분석

WBOY
WBOY원래의
2016-05-16 20:31:58972검색

이 기사의 예에서는 PHP에서 DIRECTORY_SEPARATOR 상수의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.

php에서 DIRECTORY_SEPARATOR는 무엇을 의미하나요? DIRECTORY_SEPARATOR를 사용하는 것이 가장 합리적인 때는 언제인가요? PHP DIRECTORY_SEPARATOR 상수를 소개하겠습니다.

Windows와 Linux 시스템의 백슬래시가 다르기 때문에 DIRECTORY_SEPARATOR는 백슬래시를 나타내는 PHP 상수라는 것을 알고 있습니다. Windows에서는 슬래시(/)와 백슬래시()를 모두 디렉터리 구분 기호로 사용할 수 있습니다. Linux에서는 경로 구분 기호가 "/"입니다.

그렇다면 PHP 코드에서 백슬래시를 나타내기 위해 언제 DIRECTORY_SEPARATOR를 사용해야 할까요?
예를 들어 다음 문장은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
require_once dirname(__FILE__).DIRECTORY_SEPARATOR './../. ./../wp-config.php';
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'inc/options.php';

이 두 PHP 코드 중 앞부분은 DIRECTORY_SEPARATOR를 사용하고, 뒷부분은 "/"를 사용하는 이유는 무엇인가요?
우리 모두 알고 있듯이 Windows에서는 and/이고, LINUX에서는 /

입니다.

프로그램이 로컬에서 정상적으로 실행됩니다. 서버에 업로드한 후 이미지가 표시되지 않는 것을 발견했습니다. 이미지 링크는 절대 경로 var/이며 "그런데 이 경로는 a로 처리된 것으로 기억됩니다." 상대 경로"

코드 복사 코드는 다음과 같습니다.
$path = dirname(dirname(dirname(__FILE__)))). '\'; $search = 배열( $path, '\');
$replace = 배열('', '/');
return str_replace($search,$replace,$this->tempfolder).$this->filename_prefix.$public.'.jpg';
보시다시피, LINUX "\"에서 사용하면 코드의 첫 번째 줄이 작동하지 않습니다.

해결책은 PHP에서 미리 정의한 상수 DIRECTORY_SEPARATOR를 사용하여 '' 및 '/'와 같은 경로 구분 기호를 바꾸는 것입니다. 예전에는 Windows와 LINUX가 모두 /를 지원하므로 /를 사용하는 것이 맞습니다. 하지만 이 예에서 볼 수 있듯이 경로 문자열을 처리할 때가 더 위험하므로 DIRECTORY_SEPARATOR

를 사용하는 것이 가장 좋습니다.

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

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