wwwsrchで特定のディレクトリーを検索させないようにするには?
[上に]
[前に]
[次に]
Moonlight
[E-Mail]
2000/02/08(火) 12:38:48
以前にwwwsrchで特定のファイルを検索させないようにする質問をしましたが、今回は 特定のディレクトリーを検索させないようにしたいのですが どうしたら良いでしょう?
びぎな++
2000/02/08(火) 13:05:34
特定のディレクトリを$sp_dirとして,
167行目あたり,
# すべてのファイルをなめ回す
#
sub search1 {
local($dir) = $_[0];
local(@filelist, $file, $filename);
opendir(DIR, $dir);
@filelist = readdir(DIR);
closedir(DIR);
foreach $file (@filelist) {
if ($file eq ".") { next; }
if ($file eq "..") { next; }
$filename = "$dir/$file";
if (-d $filename) {
if ($filename eq $sp_dir) {next;} #←この行を追加
&search1($filename);
} else {
&search2($filename, $dir);
}
}
}
でできるかも。(確認してません)
Moonlight
2000/02/08(火) 13:39:06
お答えありがとうございます^^
スクリプトにその1行を追加して、最初の部分にある
# 変更・確認必要パラメータ
に
$sp_dir = '../../OrangeDesign/jbl99/'; #このディレクトリーを検索しない
といれましたが、CGIが動作しませんでした。
変更・設定パラメータの部分はこれであっていますか?
ラウォッチ
2000/02/08(火) 13:51:59
よこから、すみません。
>$sp_dir = '../../OrangeDesign/jbl99/';
そもそも、このディレクトリは検索対象外では?
$target_dirで指定したディレクトリ配下が対象では!?
ぱって見ただけですが...。
wosamu
2000/02/08(火) 14:23:38
CGIが動作しないというのはどういうことでしょうか?
エラーメッセージ等ありましたら、提示してください。
仮にinternal server errorだとしたら、
>そもそも、このディレクトリは検索対象外では?
だとしたら、このような質問はされないのでは?
もし、ここに間違った値が入ったとしても
”動作しない”ということはなさそうな気がしますが。
Moonlight
2000/02/08(火) 14:43:56
お答えありがとうございます^^
新しく1行追加する前は、 ../../OrangeDesign/jbl99
のディレクトリー内も検索されていたので 検索対象には入っていると
思います。
今出るエラーは、
Internal Server Error
です。
びぎな++
2000/02/08(火) 14:47:24
確認もせずに適当なこと言ってすいません。
事情によりいまCGIのテストができない環境にいます。(ローカルでも)
ほんとにごめんなさい! 以後,こんな状況で回答なんかしないようにします。
ですので,どなたかぼくの発言は無視して,回答を考えてもらえませんか?
ほんとに申し訳ないです。> Moonlightさん
wosamu
2000/02/08(火) 14:54:08
>今出るエラーは、
>Internal Server Error
>です。
でしたら、スクリプトを追加する段階で何か記述ミスがあるのでしょう。
perl -wcとかしてエラーメッセージを確認して修正してください。
私はコピー&ペーストで記述されたのなら、
全角スペースとか入っているのが怪しいと思います。
Moonlight
2000/02/08(火) 15:09:19
いいえ、ぜんぜんOKです。気にしないでください。
もしできればラッキーだなぁ と思って試してみているだけですから^^; >びぎな++さん
コピペで記述しました。全角スペースも一応確認してみましたが
だいじょうぶなようです。
perl -wcについてはまったくわかりません;;
簡単にはできないみたいですね^^;
無責任官庁
2000/02/08(火) 15:14:27
え〜と、この @filelist の中身ってのは、要するに ls(DOSならdir)
コマンドでの表示内容を持ってきてるのと同じようなもんなんで、
パスは1段階のみしか書けません。
なので、../../OrangeDesign/jbl99/ を検索したくない場合は、
単純に、
if ($file eq "..") { next; }
の下に、
if ($file eq "jbl99") {next;}
を追加するといったような書きかたしかないと思います。
(このディレクトリの下全部対象外にする…って感じ)
すみません。びぎな++さんのサンプルは無かった事にして書いてます。
Moonlight
2000/02/08(火) 15:23:07
[[解決]]
無責任官庁さんの方法で成功しました!
みなさん どうもありがとうございました^^
ラウォッチ
2000/02/08(火) 15:47:59
よこから、すみません。
>$sp_dir = '../../OrangeDesign/jbl99/';
そもそも、このディレクトリは検索対象外では?
$target_dirで指定したディレクトリ配下が対象では!?
ぱって見ただけですが...。
ラウォッチ
2000/02/08(火) 15:56:51
オペミスで前回のを送信してしまいました!
びぎな++ さんのでも、$sp_dirに絶対パスを入れればOKでした!
ただし、$target_dirで指定したディレクトリ配下です。
Moonlight
2000/02/08(火) 16:08:05
びぎな++さんの方法で $sp_dirに絶対パスで試してみました。
これも成功しました^^
2つ大人になりました♪
[上に]
[前に]
[次に]