2011-10-29 5 views
2

PHP에서 일반 파일 시스템 뷰어를 작성했으며 컨텍스트 강조 표시를 추가하고 싶습니다. Geshi이보기에는 좋지만 코드를 강조 할 언어로 보내야합니다.문자열에서 스크립팅 언어 결정

내용 및/또는 위치별로 주어진 파일의 스크립팅 언어를 결정하는 방법에 대한 기존의 방법은 무엇입니까? 내게는 적어도 (내가 너무 비 텍스트 다운로드 가능) 텍스트의 알 수 있습니다

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mime_type = @finfo_file($finfo, $full_path); 

:

나는의 MIME 타입이있다.

필자는 bang 라인/파일 확장자를 파싱하거나 php와 같은 간단한 태그를 찾는 것이 perl/shell scripts/php와 같은 것들을위한 좋은 방법이라고 생각합니다.

또한 파일이 원본 서버에서 직접 나오므로 경로 기반 규칙이 /etc/httpd/conf.d/*,/etc/passwd와 같은 경우 작동 할 수 있으므로이 파일의 경로도 있습니다.

사용자가 구문에 사용 된 언어를 재정의하도록 허용하므로 완벽한 정확성은 실제로 문제가되지 않습니다. 나는 처음부터이 글을 쓰지 않고 시작하는 낮은 간접 교육을받는 추측을 제공하고자한다.

다른 한 가지주의 사항. 이러한 파일 중 일부는 150MB 이상일 수 있으므로 필요한 경우 대용량 파일의 경우이 기능을 해제 할 수는 있지만 파일의 일부만 읽으 려합니다.

+0

왜 파일의 확장명을 보지 않습니까? – str

답변

1

외부 프로그램을 호출 할 수있는 경우 Linux file 명령을 사용해보십시오.

+0

예. 할 수 있습니다. 그게 날 파싱 라인을 제공합니다. 좋은 시작. –

+0

당신은 내가 MIME 형식이주는 것 이상으로 '파일'의 기능을 해산했다는 것을 알았지 만, 나는 이것을 테스트했지만 꽤 좋다. 사실 .. 윈도우에 perl이 설치되어있는 것처럼 펄 스크립트를 감지하지 못한다. –

+0

misidentifed perl 스크립트가 bang 줄로 시작합니까? –

0

Google 코드에서 prettify.js (으)로 아무도 지적하지 않으 셨습니다. 클라이언트 측에서 필요한 모든 작업을 수행 할 것입니다.

관련 문제