下記のCGIをサーバーに乗せて、Y!とGoogleをランダムに表示したいのですが、もうちょっとというところでうまくいきません。
どなたか心優しい方修正していただけますか?
よろしくおねがいします。
- - - - - - - - - - - - - - -
#!/usr/bin/perl
@page = (
"http://www.yahoo.co.jp",
"http://www.google.co.jp/ig",
);
$rand_num = int(rand(($#page+1)))+1;
foreach(@page){
$i++;
if($i == $rand_num) {$file = $_;}
}
print "content-type:text/html\n\n";
print <<"EOM";
<html lang="ja"><head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<title>IFRAME</title>
</head></html>
EOM
No.3ベストアンサー
- 回答日時:
No.2
- 回答日時:
>フレームに出てくるようになっていますが、通常の表示のように出てくれるとベストなんですが。
。。そこまですると著作権的に問題が発生するような気もしますが・・。
ちなみに、恐らく、「通常の表示」というのは、URLからそのサイトのHTMLを取得して表示させたい、ということととって良いでしょうか?
そうなると、LWP::Simpleのモジュールを使えば取得可能です。
>参考ページ
http://allabout.co.jp/internet/cgiperl/closeup/C …
簡単な要約をしておきますと、スクリプトの頭の方で、
use LWP::Simple;
と宣言をしておきます。
そして、
$html = get($url);
($urlのところにサイトのURL)
とすればそのHTMLが取得できるはずです。
参考URL:http://allabout.co.jp/internet/cgiperl/closeup/C …
No.1
- 回答日時:
・出力しているHTMLデータ中に、どこにも $file が出てこないですね。
それでは表示されなくて当然でしょう。・乱数からの$fileの算出に無駄が多いです。
> foreach(@page){
> $i++;
> if($i == $rand_num) {$file = $_;}
> }
ここは
> $file = $page[$rand_num-1];
だけでOK。
ついでに言えば、配列アクセスのことを考えると、
$rand_num は 1~$#page+1 ではなく、0~$#page の範囲の乱数にした方が便利。
スカラーな文脈で@page を使えば、配列@pageの要素数を返すので、
> $rand_num = int(rand(@page));
> $file = $page[$rand_num];
とか、もっと簡単にするなら
> $file = $page[rand(@page)];
だけでいい。
この回答への補足
たしかに、シンプルにうまくいきました。
あとはHTMLに出力するにはどうすればよいでしょうか?
今は、フレームに出てくるようになっていますが、通常の表示のように出てくれるとベストなんですが。。。
- - - - - - - - - - - - - - - -
#!/usr/bin/perl
@page = (
"http://www.yahoo.co.jp",
"http://www.google.co.jp/ig",
);
$file = $page[rand(@page)];
print "content-type:text/html\n\n";
print <<"EOM";
<html lang="ja"><head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<title>マイランダムホームページ</title>
</head><body>
<iframe src="$file"><a href="$file">$file</a></iframe>
</body></html>
EOM
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストエリアにテキストファ...
-
Pythonを用いてCGIを作る勉強を...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
セレクトメニューで2つの項目...
-
CLispのloop内の挙動について
-
UWSC SLCTBOXもしくはSELECTに...
-
実行時エラー 3020の対策
-
パイソンのクラスについて
-
文字の横にプルダウンを表示さ...
-
セレクトメニューで選んだ値を...
-
【メモリ不足で落ちる(python)】
-
phpでボタンを押したときに変数...
-
perlでcheckboxがうまく整理で...
-
サーバー内のテキストデータを...
-
foreach (1..4){ 英文字$_→$新...
-
パイソンのクラスについて
-
vscode 文字化け
-
パイソンのクラスのブログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
malformed header from script....
-
結果を得て自動的にページ移動...
-
Perl CGIの中で # を使ってコメ...
-
my $html<<EOMの意味を教えてく...
-
テキストファイルの読み込み
-
Perlでの数字の12桁化
-
shift-jisからutf8に変換
-
どうしてもCookieとCGI・perlの...
-
パソコン → パャRン
-
cgiでのデータ受信
-
CGIから出力される文字が化けて...
-
サムネイルCGI
-
SSI にグローバル変数を渡すこ...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
文字の横にプルダウンを表示さ...
-
16進の10進変換について
-
実行時エラー 3020の対策
おすすめ情報