2014-04-24 3 views
0

질문 : (2014 년 4 월 24 일) : 디렉토리에있는 파일에 대한 링크를 포함하도록 웹 페이지를 수동으로 수정하지 않는 방법을 찾고 있습니다. Syntaxhighlighter를 사용하여 해당 파일의 내용을 코드 스 니펫으로 표시합니다. 파일 관리자 스크립트 (예 : * .cgi 또는 * .php)를 사용하지 않으면 특정 디렉토리의 파일을 평가하고 해당 내용을 웹 페이지에 포함시키는 쉬운 방법이 있습니까?Perl - 디렉토리 및 파일 내용 열기/읽기/인쇄 방법 -

즉, 디렉토리에서 코드 스 니펫 파일을 수동으로 추가/삭제/수정하고 해당 스크립트가로드 될 때마다 스크립트에서 스 니펫 디렉토리 (새롭게)를 평가할 수 있기를 원합니다. 지금 당장 서버의 파일 이름을 변경하면 웹 페이지를 수동으로 편집하여 license.txt의 이름을 변경해야합니다. 간단히 디렉토리 (예 : /home/lawlist/public_html/code_snippets)를 지정하고 스크립트가 해당 디렉토리의 내용을 평가하여 해당 디렉토리의 파일 내용으로 웹 페이지를 채우도록 할 수 있습니다. 이 동작은 * .cgi 또는 * .php 파일 관리자가 수행 할 수있는 것과 유사합니다.

+0

네가 무엇을 요구하는지 모르겠다. [태그 : javescript]를 보면, 당신도 마찬가지라고 생각합니다. – bjb568

+0

@ bjb568 - 질문의 명확한 설명이 필요하다는 사실을 알려 주셔서 감사합니다. 나는 몇 가지 샘플 코드와 필요한 것에 대한 더 나은 설명을 포함하도록 질문을 수정했다. 다른 포럼 참가자가 정중하게 답변을 게시했으며, 제안 된 내용에 대해 약간의 독해를해야 할 것입니다. 다시 한번 감사드립니다. 장래에는'javascript'와'html'의 태그를 모니터하는 사람들이 수천 명이 있다는 사실을 기억해야합니다. 그리고 게시하기 전에 제 질문을 더 잘 만들 거예요. – lawlist

답변

0

펄 스크립트-test.cgi :

#!/usr/bin/perl 

use CGI qw(:standard); 

print "Content-type: text/html\n\n"; 

print <<HTML; 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<html> 

<head> 

<title>Document Title</title> 

</head> 

<body> 

HTML 

my $dir = '/home/lawlist/www'; 

my $query = new CGI; 

my $name = $query->param('name'); 

my $file = $dir . "/" . $name; 

opendir(DIR, $dir) or die $!; 

while (my $file = readdir(DIR)) { 

    next unless (-f "$dir/$file"); 

    next unless ($file =~ m/\.txt|\.el$/); 

    print '<a href="/cgi-bin/test.cgi?name=' . $file . '">' . $file . "</a>" . "<br>" . "\n\n"; } 

closedir(DIR); 

if ($name) { 

    open (DATA, $file) or return $self->print_json_error($self->language('ERR_CANNOT_OPEN', $file->{name}, $!)); 

    read (DATA, my $file, -s DATA); 

    close DATA; 

    print '<pre class="brush: lisp">' . "\n\n" . $file . "\n" . '</pre>'; } 

print <<HTML; 

</body> 

</html> 

HTML 

exit 0; 

htaccess로 구성

DirectoryIndex index.html index.htm index.php index.cgi 

SSLOptions +StdEnvVars 

# Customized server error messages: 
# ErrorDocument 404 /page.not.found.basic.html 

AddHandler cgi-script .pl .cgi 
Options +Includes +ExecCGI 

AddType text/html .shtml .shtm .html .htm 
AddHandler server-parsed .shtml .shtm .html .htm 

# if you want to see the list of files in a directory 
# without an index.html file, then uncomment the following line: 

# Options +Indexes 

Options -Indexes 

# Options +FollowSymLinks 

# Options Indexes Includes FollowSymLinks ExecCGI 

웹 페이지 삽입 :

<hr COLOR="#CCCCCC" size=1 NOSHADE> 

<!--#exec cgi="/cgi-bin/test.cgi"--> 

<hr COLOR="#CCCCCC" size=1 NOSHADE> 
1

그건 서버 기술입니다. Server-Side JavaScript에서는 nodejs 'fs 모듈을 사용하여 내용을 출력 할 수 있습니다.

"SyntaxHighlighting"은 클라이언트 측 기술이며 코드 색상 지정을 위해 원하는 라이브러리를 사용할 수 있습니다.

+0

제안 해 주셔서 감사합니다. 그 주제에 대해 독해를 할 것입니다. – lawlist