Perlのファイル存在チェックでファイル名の部分一致もOKにする方法は?

このQ&Aのポイント
  • Perlのファイル存在チェックで、指定したファイル名の部分一致も条件に含める方法について教えてください。
  • 例えば、abc-123.htmlの場合、scv-abc-123.htmlやert-abc-123.htmlといったファイル名でも条件を満たすようにしたいです。
  • 具体的なコードや方法について教えていただけると助かります。
回答を見る
  • ベストアンサー

perlのファイル存在チェックで

お世話になります。 $filename = "abc-123"; $filename_check = "./data/$filename.html"; if(-e $filename_check) { $ok=1; } 上記ですと、abc-123.htmlと言うファイルが存在していた場合に$ok=1になりますが、 これを、 scv-abc-123.html ert-abc-123.html 上記のようなファイル名でも$ok=1になるようにしたいのですが、 ($filenameで指定したものが含まれるファイル) どのようにすれば良いのでしょうか。 お手数をおかけしますがご教授いただけましたら幸いです。

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

glob関数は?

bou1025
質問者

お礼

ヒントをくださりありがとうございます。 おかげさまで解決いたしました。

関連するQ&A

  • ファイルの存在チェック クライアント側

    皆さん、いつもお世話になっております。 次の事を実行したいのですが、どうしたらいいのかご存知でしたらご教授いただけると幸いです。 (やりたい事) 1.クライアントのファイル存在チェックしたい。 *実行前の処理として、クライアントのexcelファイルの存在チェック をして、  a)不存在の時は、サーバーからexcelファイルをダウンロード。 b)既存在のときは何もしない。 2.上記との関連ですが、何かボタンを押した時にクライアントのexcel を実行する。 --------------------------------------------------------------- 以上2点ですが、fopen()でやってもサーバーの存在チェックになってしまい、クライアント側をチェック出来ませんでした。何かアドバイスを下さい。 以下、実行サンプルです。 <?php $file = "test.xls"; if(!fopen($file, "r")) { header("location: http://xxxx.com/test/$file"); } ?> --------------------------------------------- 1.クライアントのファイル存在チェック 2.クライアントのexcel実行 簡単そうでしたが、できませんでした。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ファイルの存在チェックとエンコード

    自分なりに調べてファイルの存在チェック後、filemtime順にソートを する処理を書いてみましたがいまいち自信がないので、ご教授お願いします。 後、エンコードがうまくいかないのか日本語を出力しても表示がされません。 ご指摘ご教授お願いします。 <html> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <?php //ファイルの存在チェック if (file_exists('hoge01.html')) { $page['hoge1.htm'] = filemtime('hoge01.html'); } if (file_exists('hoge02.html')) { $page['hoge2.htm'] = filemtime('hoge02.html'); } if (file_exists('hoge03.html')) { $page['hoge3.htm'] = filemtime('hoge03.html'); } //ファイルが空の場合の処理 if($page == false) { echo "ファイルが存在しません。"; } //ファイルが存在すればfilemtime順にソートの処理 else{ asort($page); foreach($page as $key => $value){ echo $key; echo "<br>"; echo "<hr>"; } } ?> </html>

    • 締切済み
    • PHP
  • リモートのファイル存在確認

    標題の通り、 リモートファイルのファイルの存在チェックをしようと思っているのですが、 シェルに詳しくないのでご教授願いないでしょうか。 通常の同サーバ内では下記のように出来るかと思いますが、 それをssh で別サーバ内のファイル存在チェックをしたいです。 if [ -e /usr/test/test.txt ]; then echo "存在" fi 宜しくお願い致します。

  • cgi(perl)でアップロードされたファイルを保存する方法について

    ファイルをアップロードするフォーム"form.html"(method="POST" action="/cgi-bin/form.cgi")を書きました。 ファイルを保存する方法について疑問があるので教えて下さい。 http://www.ss.iij4u.or.jp/~somali/web/_perl_upload.html 上記URLを参考にしました。 下記の変数"$filename"には、アップロードしたファイル名(image.jpgなど)が入っています。 (アップロードされたファイル名と保存するファイル名を同じにしました。) #------------------------------------------------------------ open (OUT, ">$filename") || die "cannot open"; binmode (OUT); $i=1;#ループ回数とアップロードされたファイルのサイズの比較の為。 while(read($filename, $buffer, 1024)){ print OUT $buffer; $i++; } close (OUT); close ($filename) if ($CGI::OS ne 'UNIX'); # Windowsプラットフォーム用 print "whileループの数: $i<BR>"; #------------------------------------------------------------ while文について。 while(read($filename, $buffer, 1024)){ print OUT $buffer; 上記の2行は、1024バイトづつ$filename(アップロードしたファイル名)から読み込み、$bufferに格納。 $bufferに格納されたデータをOUTで指定した部分に書き込む、そしてそれを繰り返す。 こう理解していますが間違いないでしょうか? ファイルサイズが予想できれば、whlie文を使わずに read($filename,$temp,10000); print OUT $temp; このようにしても問題ありませんか? read関数について教えて下さい。 書籍などには、 read(FILEHANDLE,$data,1024); こう書いてありますが、上記例でFILEHANDLEを変数名$filenameにしても問題なく動作しました。 FILEHANDLEでなく、変数$filenameでも問題無いのでしょうか? FILEHANDLEと$filenameは何を示しているんですか? ファイルの先頭アドレスでしょうか? $filenameにはアップロードしたファイル名が入っているのにどうして動くのだろうと疑問に思っています。 乱文で申し訳ありませんがご教授下さい。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • UNIX ファイル存在チェックの方法

    お世話になります。 UNIXにてファイル存在チェックを行うShellスクリプトを作成しています。 ■プログラム if (-f "text_file_*.txt") then echo "存在している" else echo "存在していない" endif ■問題点 IF文中の比較対照ファイルとして、ワイルドカード(*)を 指定しているのですが、文字列として認識されてしまいます。 この方法でワイルドカードとして処理を実行する方法はあるでしょうか? もしくは代替案などありましたら、ご教示いただきたいです。 よろしくお願いします。

  • ファイル存在チェック

    日本語サイトと、英語サイトの行き来で: 日本語サイト: http://www.hoge.com/sample/sample.html 英語サイト: http://www.en.hoge.com/sample/sample.html 英語サイトのsampleディレクトリに、日本語サイトのsampleディレクトリと同一ファイルが存在した場合のみ、日本語サイトのそのページに<a href="">English</a>のリンクを表示させたく、 下記の様なPHPを書きました。 <?php $url_en = 'http://www.en.hoge.com'; $current_dir = basename(dirname($url)) ; $filename = basename($_SERVER["PHP_SELF"]); if (file_exists($url_en.'/'.$current_dir.'/'.$filename)) { echo ($url_en.'/'.$current_dir.'/'.$filename); } ?> ファイルが存在するので、echo の部分を出力してくれても良さそうな気がするのですが、 表示されません。 また、echo の部分を<a href=""></a>に入れるには、どの様に書いたら宜しいでしょうか?

    • ベストアンサー
    • PHP
  • jQueryでファイルの存在チェックをしたい

    あるhtmlファイルに、別のhtmlファイルをload()で読み込もうとしています。 例) index.htmlに a.htmlやb.htmlなどなど…を表示したい。 loadしたいhtmlファイルが存在する場合と、存在しない場合とで 処理を分けたいのです。 loadしたいファイルの存在をチェックするには どうしたらよいのでしょうか? 詳しい方、ぜひともご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • is_fileでチェックを繰り返しているファイルを消す

    PHP4.3.2をRedhatES3/Apache2.0上で動かしています。 ファイルが存在するか簡単なチェックをしたくて、以下のような記述をしています。 while(is_file($指定ファイルA)==true){  print "ファイルがあるので3秒スリープします";  sleep(3); } $指定ファイルAがある限りループし続けるつもりだったのですが、この処理を動かしている途中で$指定ファイルAを削除しても、ループから抜けてくれません。 別ファイルからunlink($指定ファイルA)したり、Linux上で指定ファイルの名前を変えてみるなどしてみましたが、処理が止まることなくずっと続いてしまいます。 最初から$指定ファイルAが無いとループしないため、どこでPHPが指定ファイルAを認識しているのかわからず詰まってしまっています。 原因がなんなのか、もしくは上記のようなことをする場合、別な方法だとすぐ解決できるというのがあるのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 【file_exists】ファイルが存在するのに、存在しないとなります

    いつもお世話になっております。 ■環境■ PHP5 Windows ■状況■ フォルダ内にtextファイルが20~45個入っております(個数は状況によって変わります)。 ■目的■ フォルダのtextファイルの中身を参照し、各textファイルに必ず含まれる数字を取り出す。でございます。 ■方法■ (1)フォルダにあるファイル名を取りだす (2)fopenで読み込み(r)で全部を見、数字を別ファイルに書き込む と考えたのですが、(1)で.、..というよくわからないファイルも一緒に出てきてしまったので、file_existsでファイルが存在するか確認してから(2)に移ろうとお思いました。 が、ファイル名は全部ないといわれてしまうのです。 しかしfile_exists($filename)の$filenameを表示させ、ブラウザにこぴぺするとtextデータは出てきます。 以下プログラムの一部です ※$cは(1)で得たフォルダ内にあるファイル名をループでまわしている値です for($b=0;$b<$a;$b++){  $filename="C:/Inetpub/wwwroot/php/kore/1/".$c; if (file_exists($filename)) { print "あるよ<BR>"; } else { print "ないよ<BR>"; } } 結果は(一部です) C:/Inetpub/wwwroot/php/kore/1/.text⇒ないよ C:/Inetpub/wwwroot/php/kore/1/..text⇒ないよ C:/Inetpub/wwwroot/php/kore/1/0155442A5.txt⇒ないよ C:/Inetpub/wwwroot/php/kore/1/01762602A.txt⇒ないよ です。 上記の C:/Inetpub/wwwroot/php/kore/1/01762602A.txt C:/Inetpub/wwwroot/php/kore/1/0155442A5.txt は確実に存在しております。 どこがおかしいのか、ご教授いただければ幸いです よろしくお願いいたします

    • ベストアンサー
    • PHP
  • web 上のファイルが存在するかチェックする方法

    php 5 を使用です。 自分のサーバーのファイルは file_exists($filename) でチェック出来ますが、 web 上のファイルが存在するか確認することは出来るのでしょうか? web 上のファイルというのは 自分のサーバーではないこういうものです。 http://www.example.com/images/pic01.jpg

    • ベストアンサー
    • PHP

専門家に質問してみよう