PHP 주석 및 공백 제거 옵션 (-w)


PHP -w 옵션은 ‘Whitespace’ 또는 ‘Write Stripped Source’를 뜻하며, 파일 내부의 컴파일용 데이터 분석 단계에서 모든 주석문과 다중 연속 공백, 줄바꿈 기호를 깔끔하게 제거(Strip)한 결과물만을 터미널 표준 출력으로 반환합니다.

웹 프레임워크나 스크립트 도구를 배포할 때 소스 용량을 최대한 경량화하여 소형 패키지를 만들고 싶거나, 내부 주석을 필터링해 원시 배포본을 구성하고자 할 때 소스 미니파이어(Minifier - 코드 압축기)처럼 활용할 수 있습니다.


1. 사용 예제 및 컴파일 결과 대조


php -w [압축할_소스_파일명.php]

1) 압축 처리 전 소스코드 (index.php)

주석과 풍부한 단락 개행이 들어가 있는 코드입니다.

<?php
// 1. 데이터베이스 계정 정보 정의
$db_host = "localhost";

/*
   작업자: Hojin
   날짜: 2026-06-14
   설명: 데이터베이스 디렉트 연결 테스트
*/
$db_user = "root"; # 관리자 계정 이름

echo "Connection Success!"; // 화면 에코
?>

2) -w 옵션 가동 후 압축 출력 결과

$ php -w index.php
<?php
 $db_host = "localhost"; $db_user = "root"; echo "Connection Success!"; ?>
  • 수행 내역:
    • //로 시작하는 단일 행 주석 제거 완료.
    • #로 작성된 셸 스타일 주석 제거 완료.
    • /* ... */로 둘러싸인 다중 행 블록 주석 전체 소멸.
    • 빈 줄바꿈과 여러 칸의 공백들이 최소한의 토큰 구획 단위인 한 칸의 공백 문자 수준으로 완전 병합 및 압축되었습니다.


2. 실무 활용 및 주의사항


  • 파일 압축 저장: 화면에 뿌려진 결과를 리다이렉션(>)하여 새 파일로 이식 저장할 수 있습니다.
    php -w source.php > source.min.php
    
  • 주의 사항: PHP 어휘 분석 엔진(Tokenizing VM)이 각 구문을 완벽하게 인지하여 가공하므로 구문 에러가 나거나 코드가 꼬이지는 않습니다. 그러나 개발 시 작성해 둔 디버깅용 주석과 역사적 기록 로그가 원천적으로 지워지므로, 원본 백업 파일이 아닌 실제 서비스 가동용 배포 빌드본에만 선별 적용하는 것이 안전합니다.
서브목차