• 締切済み

【PHP】FTP関数でのバックアップスクリプトについて

プログラミング歴一ヶ月の超初心者ですが、スクリプト作成に躓いてしまい、どうしても分からなくて困っています…。 下の方にあるPHPスクリプトは、「複数ホストにおいてそれぞれの設定にしたがってバックアップを取るスクリプト」です。 サーバー、クライアント、共にwin2000、iisです。 さて、質問は3つあります。 ◆◆◆1つ目の質問◆◆◆ 現在3つのホストで試行しているのですが、一つ目のホストでは殆どエラーは出ないのに、二つ目と三つ目のホストではどうしても数百あるファイルの内、何かしらの一つがfopenに失敗します。エラーは例えば次の通りです。 Warning: fopen(【ファイルパス(毎回違うものが引っかかります…)】) [function.fopen]: failed to open stream: No such file or directory in D:\WORK_DIR\BU\bu.php on line 183 Warning: fclose(): supplied argument is not a valid stream resource in D:\WORK_DIR\BU\bu.php on line 187 Warning: fopen(【ファイルパス】) [function.fopen]: failed to open stream: No such file or directory in D:\WORK_DIR\BU\bu.php on line 183 Warning: fclose(): supplied argument is not a valid stream resource in D:\WORK_DIR\BU\bu.php on line 187 Warning: fopen(【ファイルパス】) [function.fopen]: failed to open stream: No such file or directory in D:\WORK_DIR\BU\bu.php on line 183 Warning: fclose(): supplied argument is not a valid stream resource in D:\WORK_DIR\BU\bu.php on line 187 Warning: fopen(【ファイルパス】) [function.fopen]: failed to open stream: No such file or directory in D:\WORK_DIR\BU\bu.php on line 198 Warning: fclose(): supplied argument is not a valid stream resource in D:\WORK_DIR\BU\bu.php on line 200 Warning: unlink(【ファイルパス】) [function.unlink]: No such file or directory in D:\WORK_DIR\BU\bu.php on line 209 一応スクリプトの中で再試行も試みているのですがイマイチ機能してるのかわかりません…。 それと、FFFTPやIEでこのエラーに引っかかったファイルには別に普通にアクセスできます。 どうやったらこのエラーが無くなるのかわからなくて困っています。教えて頂けたら嬉しいです。 ◆◆◆2つ目の質問◆◆◆ 効率化についてです。 一応、ZIP化する機能を後に追加したので、「ローカルにファイルをダウンロード→そのファイルを読む→ZIP化」の手順を、「サーバー上のファイルを読む→ZIP化してローカルに保存」の様に簡略化しようと思っているのですが、それくらいしか思いつかなくて…。良かったら効率化についてご指摘いただければと思います。少しでも実行時間を短くしたいです。 ◆◆◆3つ目の質問◆◆◆ スクリプトの中盤辺りで、ダウンロード予定数と成功数を出力する試みがあるのですが、現時点では成功数のカウントは正確に反映されそうにないので、直すつもりです。とりあえず現在の様子だと、予定数、成功数ともに同じ数がカウントされるわけですが、これが困ったことに実際のダウンロード数と少し違うのです…。 一つ目のホストでは全く問題ないのですが、二つ目と三つ目では、生成されたZIPを展開してファイル数、フォルダ数を調べると、サーバー上のそれよりも多少多いのです…。ダウンロードリストもログで残しているのですが、これは数はずれていません。このリストと同じ配列でダウンロードも処理しているのですが…どうにもこうにも全く理由がわからなくて困っています。 ◇◇◇ こういう時はこうする、というような定石も全く持っていないので本当に一苦労です。そういう部分に関しても、色々遠慮せずにご指摘願えたら嬉しいです。 長々とすみません。よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

fa-ceさん、回答どうもありがとうございました! m_sevenです。パスワードを紛失してしまって、さらに登録情報もとちっちゃったみたいで再発行できなくて新しいIDを作るはめになりました。 ところでスクリプトの部分が抜けちゃってて質問も半分意味不明なのに本当にどうもありがとうございました。 定石として覚えておきます^^

  • fa-ce
  • ベストアンサー率42% (9/21)
回答No.1

1つ目の質問に関するアドバイスですが fopenの前に if(is_readable($filename)){ //ファイル処理fopen.... }else{ $errfile[] = $filename; } としておけば、読み込めたファイルは処理ができるし、読み込めなかったファイルは$errfileの中に入っているので、[function.fopen]: ・・・というエラーを消すことができます。 そしてunlinkの前には if(file_exists($filename)) unlink($filename); とすると[function.unlink]:・・・というエラーを消すことができます。

関連するQ&A

  • サーバーにPHPを拒否されてしまう

    無料HPでPHPの練習をしている初心者です。 PHPファイルをサーバーにアップしてブラウザでみてみると・・・ ------------------------------------------------------------- 今日は、2008/07/26 です☆ Warning: fopen() [function.fopen]: Unable to access count.txt in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fopen(count.txt) [function.fopen]: failed to open stream: No such file or directory in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fgets(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 20 Warning: fseek(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 22 Warning: fputs(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 23 Warning: fclose(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 24 あなたは 1 人目のお客様です。 -------------------------------------------------------------- このような警告ばかりでて、PHPのコマンドが働いていないようなのです。日付は表示されますし、お客様の人数も一応1となっていますが、TOPへ戻ってから再度きても1人なのです。だから働いていないと思うのです。どうしたらPHPのコマンドを受け入れてもらえますか?無料HP、PHP可のところでは無理なのでしょうか? お願いします!

    • ベストアンサー
    • PHP
  • windows環境でphpのfopenが使用できない

    rimyと申します。 windowsでapacheを使用していて、PHP5をインストールしています。 PHPは作動していて、スプリクトは実行できます。 しかしfopen関数を使ってファイルをロードしようとしたところ なぜかエラーが起きます。 fopen関数は fopen('ファイルパス','モード'); でやれるので やってみましたが、 Warning: fpassthru(): supplied argument is not a valid stream resource in C:\Apache\htdocs\test\reading.php on line 6 という表示が出ます。 ちなみにスプリクトは <html> <head><title>ファイルの読み出し</title></head> <body> <?php $text = fopen("test.txt","b""r"); fpassthru($text); ?> </body> </html> と書いてあります。 あるサイトで windows環境では モードにbを入れろ と書いてありましたがどういうことでしょうか。 まだ最近 勉強し初めでわかりませんのでよろしくお願いします。

    • ベストアンサー
    • PHP
  • エラーの意味

    本当に困り果てています。 この警告の意味を教えてください。 Warning: fopen(test.txt) [function.fopen]: failed to open stream: Permission denied in /var/www/html/練習プログラム/test_kanryou.php on line 17 Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/html/練習プログラム/test_kanryou.php on line 18 誰か詳しい方がいれば、教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでの更新管理がロリポップだとエラーが出てしまう。

    はじめまして。 このたび業者さんにホームページを自分で更新できるプログラムを作って頂きました。 今まではさくらインターネットで使用していたのですが、今回ロリポップにしたところ、更新すると次のようなエラーが出てしまいます。 Warning: fopen(./data/news_08.txt) [function.fopen]: failed to open stream: Permission denied in /home/sites/lolipop.jp/users/lolipop.jp-dp16027581/web/edit/edit.php on line 23 Warning: flock(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.jp-dp16027581/web/edit/edit.php on line 24 Warning: fputs(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.jp-dp16027581/web/edit/edit.php on line 25 Warning: fclose(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.jp-dp16027581/web/edit/edit.php on line 26 Warning: chmod() [function.chmod]: Operation not permitted in /home/sites/lolipop.jp/users/lolipop.jp-dp16027581/web/edit/edit.php on line 27 エラーを見てもさっぱりなんですが、解決方法などがわかる方いらっしゃいますでしょうか? どうかよろしくお願致します。

    • ベストアンサー
    • CGI
  • phpの更新管理プログラムがxreaでエラー

    phpの更新管理プログラムがxreaでエラーが出てしまう。 はじめまして。 このたび業者さんにホームページを自分で更新できるプログラムを作って頂きました。 更新すると次のようなエラーが出てしまいます。 ホームページを一部更新するプログラムがある日エラー表示されるようになりました。 業者さんに連絡がとれなくなってしまったので、ここに書き込みさせていただきました。 プログラムなどは、まったくわからないので、お手上げ状態です。 パーミッションなど見直してみましたが、特に問題ないようです。 なにかわかる方いらしたら、是非ヒントでもいただければ、幸いです。 参考に、エラーメッセージを掲載させていただきました。 エラーメッセージ ---------------------------------------- Warning: fputs(): supplied argument is not a valid stream resource in /virtual/seibuchen/public_html/www.saimin-kyouzai.com/news/information.php on line 303 Warning: fclose(): supplied argument is not a valid stream resource in /virtual/seibuchen/public_html/www.saimin-kyouzai.com/news/information.php on line 305 Warning: fputs(): supplied argument is not a valid stream resource in /virtual/seibuchen/public_html/www.saimin-kyouzai.com/news/information.php on line 420 Warning: fputs(): supplied argument is not a valid stream resource in /virtual/seibuchen/public_html/www.saimin-kyouzai.com/news/information.php on line 618 Warning: fputs(): supplied argument is not a valid stream resource in /virtual/seibuchen/public_html/www.saimin-kyouzai.com/news/information.php on line 648 ----------------------------------------

    • 締切済み
    • PHP
  • PHPエラーについて教えてください

    PHPエラーについて教えてください GD関数のエラーだと思います。 サーバを移動したら以下のようなエラーが出ました。 どのようなエラーになるのでしょうか。 Warning: imagesx(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 99 Warning: imagesy(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 99 Warning: imagecopyresized(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 99 Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 100

    • ベストアンサー
    • PHP
  • phpの用語

    phpの用語について。 郵便番号で住所を特定するapiを試してみたのですが、 以下のようなエラーになってしまいます。(エラーの意味はわかります。 allow_url_fopen=0だからfopen出来ない。ですよね?)(xfreeサーバーです。 http:// wrapper(ラッパー?) この、ラッパーってなんですか?また、このような用語について覚えていきたいのですが、やりながらリファレンスを見つつわからなかったことを調べていくって感じで大丈夫ですか? Warning: fopen(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/hoge/public_html/zip_serach_xml.php on line 218 Warning: fopen(http://zip.cgis.biz/xml/zip.php?zn=7392115): failed to open stream: no suitable wrapper could be found in /home/hoge/public_html/zip_serach_xml.php on line 218 could not open XML

    • ベストアンサー
    • PHP
  • 助けてください

    サーバーにフリーのPHPをアップしたところ、以下のようなメッセージが出てきて正常に動作しません。 発行元に問い合わせていますが、どうも返事が遅くなりそうなので、もしよろしければ解決の糸口を教えていただければと思い、投稿しました。 ------------------------------------------------ Warning: flock() expects parameter 1 to be resource, boolean given in /virtual/hpbuilder/public_html/mydic.php on line 131 Warning: fputs(): supplied argument is not a valid stream resource in /virtual/hpbuilder/public_html/mydic.php on line 133 Warning: flock() expects parameter 1 to be resource, boolean given in /virtual/hpbuilder/public_html/mydic.php on line 135 Warning: fclose(): supplied argument is not a valid stream resource in /virtual/hpbuilder/public_html/mydic.php on line 137 ------------------------------------------------ パーミッションの問題なのでしょうか。よろしくお願いします

    • ベストアンサー
    • PHP
  • botを作っているのですが、oauth認証に関する質問です。

    botを作っているのですが、oauth認証に関する質問です。 http://www.sdn-project.net/labo/twitter_bot.html こちらを参考にbotをbasic認証からoauth認証に切り替えているのですが、以下のエラーが出ています。 TLに一応は反応してくれるのですが、一つのtweetに何回も反応してしまい、とても困っています。 php等がよくわかっていないので、どうすればいいのかまったくわかりません。 ./(botのid)_Since.datを作ればいいのかと思いますが、何をどうすればいいかもさっぱりです。 どなたかわかる方、教えてくだされば幸いです。 Warning: file() [function.file]: Unable to access ./(botのid)_Since.dat in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 27 Warning: file(./(botのid)_Since.dat) [function.file]: failed to open stream: No such file or directory in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 27 Warning: fopen() expects at least 2 parameters, 1 given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 36 Warning: flock() expects parameter 1 to be resource, boolean given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 37 Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 38 Warning: flock() expects parameter 1 to be resource, boolean given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 39 Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 40 Normal termination: 0.9656 sec, 10:58:22 以上に出てくるtwitter_bot.phpは http://www.sdn-project.net/labo/twitter_bot.txtをそのまま使っています。

    • 締切済み
    • PHP
  • メールフォームの設置

    メールフォームの設置をしたいのですが 送信を押すと以下のようなメッセージが出てしまいます。 考えられる原因を教えてください。 Warning: file(index.html) [function.file]: failed to open stream: No such file or directory in /home/users/1/main.jp-XXX/web/fmail.php on line 161 Warning: Invalid argument supplied for foreach() in /home/users/1/main.jp-XXX/web/fmail.php on line 162

    • 締切済み
    • PHP

専門家に質問してみよう