Warning: fread(): Length parameter must be greater than 0. in /virtual/・・・/public_html/blog/include/system.php on line 362
というエラーが出ます。
RSSリーダーで読めるようにしたいのですが、このエラーが原因なのか記事の取得ができません。解決方法を教えてください。
「Warning: fread(): Length parameter must be greater than 0」でGoogle検索すると多くのサイトでこのエラーメッセージが表示されているようなのですが、このエラーの意味と改善方法のみでも結構ですので、ご教授下さい。
よろしくお願いします。
該当箇所(line 362)で実行しているfread関数にひきわたされた
”読み取り長”に0以下の値が入っているんじゃないでしょうか。
これは多分、空であっても同じようなエラーになるかもしれませんね。
phpは書いたことがありませんが、調べると、
http://www.scollabo.com/banban/php/ref/ref_fread.html
第二引数に読み取り長を渡すようですから、そこの恐らくは
変数に入っている値がおかしいのだと考えられます。
原因はわかりませんが、
そのなんとかさんのphpブログシステムでは既知のバグかもしれま
せんが、私は知りませんので、どなたかの回答が無い限りは、
自力でデバッグするのがはやいかもしれません。
ここのコード(line362)をチェック。
先述しましたが変数であれば、362行以前で一度、デバッグとして
値を画面に表示してみるとかしてながめてみて、
やはり入っている値がおかしい(例えば空だとか、-1とか)
のであれば、そのおかしい値がどこで設定されたのかを
遡って調査する...と私ならば普通にそうやっていきます。
ポイント不要です。
http://php.planetmirror.com/manual/ja/function.fread.php
PHP: fread - Manual
URLは、PHPマニュアルのエラーが出ている関数のページ。
エラーが出る理由は先の回答者さんの通りで間違いないと思います。
index.rdfをどのようなやり方で編集しようとしているのかはわかりませんが、恐らくPHPのプログラムを動作させてプログラムから編集しようとしているのでしょう。
編集を行うプログラムを呼び出すHTMLソースのフォームで「tmpname」という部分に該当する部分に恐らくfread関数で開くファイル名が書かれていると思います、そのファイル名が空だからエラーが出るとしか、実際にソースコードを見ていない人間には想像がつきませんね…。
ありがとうございます。
参考URLを読ませていただきましましたが、現在の私が手をつけられる範囲を超えている事は判りました。
一旦クローズさせていただきます。
ありがとうございます。
コードを見て自分で修正したいのはやまやまですが、いかんせん何処を直せばいいかがわからず困っています。ちなみに362行は以下のようになっています。
$data = htmlspecialchars(JcodeConvert(fread($fp,filesize($_POST[tmpname])),0,2));