1

こんにちは私は1つのフォルダに2000のhtmlファイルを持っており、それらの名前は次のように互いに続いています。

01_001.html
01_002.html
01_003.html
01_004.html
02_001.html
02_002.html
02_003.html
..............
33_001.html
33_002.html
33_003.html
..... .. ........
33_123.html

同じフォルダ内の次/前のHTMLページに動的に移動するすべての2000HTMLファイルにリンク/スクリプトを追加したいと思います

私はこれをPERLに追加する方法を知っていますが、JavaScript /jQueryでそのようなリンク/スクリプトはどのように見えるべきですか?

私はこのスクリプトを試しました:

<a href="#" onClick="movePrv();">Previous</a> end <a href="#" onClick="moveNext();">Next</a>

しかし、それは機能しません。何か案は?

4

3 に答える 3

1

PHP でのソリューションは次のようになります。

<?php
$file = basename(__FILE__);
$chap = substr($file, 0, 2);
$cat = substr($file, 3, 3);
$prevFile = sprintf("%1$02d_%2$03d.php", $chap, ($cat-1));
$nextFile = sprintf("%1$02d_%2$03d.php", $chap, ($cat+1));
echo($prevFile);
echo($nextFile);

$isFirst = ($cat == "000");
$isLast = !file_exists($nextFile);
?>

変数$nextFile$prevFileを使用してリンクを作成します。また、現在のファイルがチャプターの最初か最後かを確認し、前または次のリンクを表示しないようにすることもできます。

于 2012-07-12T08:58:12.313 に答える
1

デフォルトの Perl ソートを使用すると、ファイル名が正しい順序になると思いますが、提供されているサンプル データには十分です。そうでない場合は、代わりにSort::Naturallyを見てください。

</head各ファイルには、HTML ヘッダーの終わりを示す文字シーケンス が含まれていると想定しています。直前にリンク関係を挿入します。非常に不規則なマークアップの場合、 Web::Queryなどの HTML パーサーが必要です。

このコードは、リング/ウロボロス方式ですべてのファイルをリンクします。配列インデックス-1 DTRTは、最後の配列要素を参照します。

テストされていないコード:

use 5.012;  # for "each @array"
use File::Slurp qw(read_file write_file);

my @order = sort qw(
    01_001.html
    01_002.html
    01_003.html
    01_004.html
    02_001.html
    02_002.html
    02_003.html
    33_001.html
    33_002.html
    33_003.html
    33_123.html
);
while (my ($i, $curr_file) = each @order) {
    my $next_file = $order[$i + 1];
    my $prev_file = $order[$i - 1];
    my $content = read_file $curr_file, { binmode => ':raw' };
    $content =~ s
        {</head}
        {
            <link rel="next" href="$next_file">
            <link rel="prev" href="$prev_file">
            </head
        };
    write_file $curr_file, {binmode => ':raw'}, $content;
}
于 2012-07-12T09:56:30.927 に答える
-1

サーバー側の PERL スクリプトを作成して、次/前のファイル名を返します。Javascript では、AJAX メソッドを使用してファイルの次または前のファイル名を取得し、リダイレクトすることができます。それが実現可能で最も簡単なオプションだと思います。

于 2012-07-12T08:10:31.140 に答える