ソースを表示する cgi

  その1 (超単純)



  
#!/usr/local/bin/perl

# **********************************************************
# HTTP ヘッダの出力
# **********************************************************
print "Content-Type: text/html; Charset=shift_jis\n\n";

open( IN, "./ponny.cgi" );
@src = <IN>;
close( IN );

foreach( @src ) {
	print;
}
  


  • 実行結果を見ると、明らかに改行されていません。
  • そこで、テキストファイル上の改行コードを、HTML での改行に変更します



  •   改行コード調整



      
    #!/usr/local/bin/perl
    
    # **********************************************************
    # HTTP ヘッダの出力
    # **********************************************************
    print "Content-Type: text/html; Charset=shift_jis\n\n";
    
    open( IN, "./ponny.cgi" );
    @src = <IN>;
    close( IN );
    
    foreach( @src ) {
    	$_ =~ s/\n/<br>/g;
    	print;
    }
    
      


  • 最初のほうは、うまく表示されましたが、後半はなにか変です。
  • HTML の 表示が実行されているので、それを調整します。


  •   ブラウザがタグを実行しないようにする

      
    #!/usr/local/bin/perl
    
    # **********************************************************
    # HTTP ヘッダの出力
    # **********************************************************
    print "Content-Type: text/html; Charset=shift_jis\n\n";
    
    open( IN, "./ponny.cgi" );
    @src = <IN>;
    close( IN );
    
    foreach( @src ) {
    	$_ =~ s/</&lt;/g;
    	$_ =~ s/>/&gt;/g;
    	$_ =~ s/\n/<br>/g;
    	print;
    }
    
      


  • かなりうまく行きましたが、まだかなり変です。
  • タブやスペースがうまく反映されていません。それを調整します。


  •   タブ・スペースを反映

      
    #!/usr/local/bin/perl
    
    # **********************************************************
    # HTTP ヘッダの出力
    # **********************************************************
    print "Content-Type: text/html; Charset=shift_jis\n\n";
    
    open( IN, "./ponny.cgi" );
    @src = <IN>;
    close( IN );
    
    print "<pre>";
    foreach( @src ) {
    	$_ =~ s/</&lt;/g;
    	$_ =~ s/>/&gt;/g;
    	$_ =~ s/\n/<br>/g;
    	print;
    }
    print "</pre>";
    
      


  • ほぼ完璧に見えますが、ブラウザからHTMLソースを見ると、無茶苦茶です。
  • ブラウザから見たソースを見やすくする為に調整します。


  •   単純表示最終バージョン

      
    #!/usr/local/bin/perl
    
    # **********************************************************
    # HTTP ヘッダの出力
    # **********************************************************
    print "Content-Type: text/html; Charset=shift_jis\n\n";
    
    open( IN, "./ponny.cgi" );
    @src = <IN>;
    close( IN );
    
    print "<pre>";
    foreach( @src ) {
    	$_ =~ s/</&lt;/g;
    	$_ =~ s/>/&gt;/g;
    	print;
    }
    print "</pre>";
    
      

      
    実は、<PRE> タグで囲むと、<BR> タグは必要ありません。
    
      

      あまりに殺風景なので、フォントを変えてみます

      
    #!/usr/local/bin/perl
    
    # **********************************************************
    # HTTP ヘッダの出力
    # **********************************************************
    print "Content-Type: text/html; Charset=shift_jis\n\n";
    
    open( IN, "./ponny.cgi" );
    @src = <IN>;
    close( IN );
    
    print "<pre style='font-family:HG創英角ゴシックUB;font-size:14'>";
    foreach( @src ) {
    	$_ =~ s/</&lt;/g;
    	$_ =~ s/>/&gt;/g;
    	print;
    }
    print "</pre>";
    
      

      正規表現その1

    関数の名称部分をうまく置き換えて、ソースをわかりやすくします。

      
    #!/usr/local/bin/perl
    
    # **********************************************************
    # HTTP ヘッダの出力
    # **********************************************************
    print "Content-Type: text/html; Charset=shift_jis\n\n";
    
    open( IN, "./ponny.cgi" );
    @src = <IN>;
    close( IN );
    
    $headstyle = "line-height:2;border-style:outset;background-color:skyblue";
    
    print "<pre style='font-family:HG創英角ゴシックUB;font-size:14'>";
    foreach( @src ) {
    	$_ =~ s/</&lt;/g;
    	$_ =~ s/>/&gt;/g;
    	$_ =~ s/sub\s*[A-Za-z0-9_]*\s*\{/<h4 style='$headstyle'>$&<\/h4>/g;
    
    	print;
    }
    print "</pre>";
    
      











       SQLの窓    create:2002/09/06  update:2014/09/07   管理者用(要ログイン)





    フリーフォントWEBサービス

    SQLの窓WEBサービス

    SQLの窓フリーソフト

    写真素材

    一般WEBツールリンク

    SQLの窓

    フリーソフト

    JSライブラリ