2017-01-19 4 views
3

HTMLテンプレートをC(またはC++)CGIスクリプトでコール/表示することはできますか(生のHTMLコードをスクリプトに埋め込むことなく)。それは、スタンドアローンのウェブページであるかのように例えばC CGIを使用してHTMLテンプレート/フォームを提供する

....

http://localhost/cgi-bin/c-program.cgiは、」ブラウザで「/var/www/cgi-bin/hello-world.html」を機能します。 URLを除いて、ユーザーは違いを知らないでしょう。

編集私は「漠然と」としてフラグ付けされたくないので:

/* C-PROGRAM.CGI - displays parsed html */ 
#include <stdio.h> 
#include <stdlib.h> 

int main (void) { 
    FILE *fp; 
    fp = fopen ("/var/www/cgi-bin/hello-world.html", "r") 
    if (fp == NULL) { 
     printf ("File not available, errno = %d\n", errno); 
     return 1; 
    } 

    // Display all of parsed hello-world.html in browser 

    fclose (fp); 
    return 0; 
} 

このスニペットはあなたに私が達成したいものの感覚を与える必要があります。どうすれば達成できますか?プログラムは、私の読書はあなたがHTMLのためのCスクリプトを実行したい場合はあなたががそれを行う必要がありますどちらか...

+0

以前にCでファイルIOを使用しましたか? – StoryTeller

+0

私はCをまったく使っていません。 – ImmortalViper

答えて

0

を処理文字またはHTMLのみのラインのパスを私をリードし続けるhttp://localhost/cgi-bin/c-program.cgi

を介して実行されるだろうCGI-BIN(あなたが分かった)か、あなた自身のApacheモジュールでそれを行う必要があります。後者はそれを行う方法についてWeb上でたくさんのチュートリアルを持っています。

スタイルでcgi-binを使用する場合、program.cgiはhtmlファイルにfopenを単に使用し、printfを使用してファイルの内容を出力します。

void print_file(FILE *f) 
{ 
    int c; 
    if (f) 
    { 
     while ((c = getc(f)) != EOF) 
      putchar(c); 
     fclose(f); 
    } 
} 

int main() 
{ 
    FILE *content = fopen ("/var/www/cgi-bin/hello-world.html", "r"); 
    FILE *header = fopen ("/var/www/cgi-bin/header.html", "r"); 
    FILE *footer = fopen ("/var/www/cgi-bin/footer.html", "r"); 

    printf("Content-Type: text/html \n\n"); 
    print_file(header); 
    print_file(content); 
    print_file(footer); 
    return 0; 
} 
関連する問題