- ベストアンサー
エラーがでるのはファイル構造図とプログラム
- ファイル構造図からエラーが出る原因を特定できず、正常に動作しないコードの修正を試みるも成功せず。
- 質問文章のプログラムの一部にエラーが発生しており、数量表示がエラーとなっている。
- エラーの原因特定には誤字脱字の可能性が高いが、確認した結果、問題箇所は見つからず。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
他の方も書かれていますが split 関数は非推奨になっており。PHP 5.3.0 以降では E_DEPRECATED レベルの警告が出ます。 単純に分割したいだけなら $item = explode(",", $rec); とするといいでしょう。
その他の回答 (6)
最初の回答のリンク先(Yahoo!知恵袋の知恵ノート)にも載せてますが、 $id = $_GET["id"]; この書き方はやめましょう。 あと、今回のエラーの原因となっているのは既に何人もから指摘を受けている通り、非推奨であるsplit関数を使っているのが原因です。split関数は名前が「スプリット(分割)」という非常にシンプルなものゆえに、ロクにマニュアルも調べもせずに「文字列を分割する関数」と思い込む人がちらほらいますが、正しくは「文字列を "正規表現で" 分割する関数」です。単純に分割を行うのはexplode関数です。ちなみに現在推奨されている正規表現分割関数はpreg_split関数です。 サンプル http://ideone.com/lszN3K
- b0a0a
- ベストアンサー率49% (156/313)
結局解決できましたか? 非推奨のsplitを使っているからその警告文が「800,2,1600」の前にくっついて出力されてる それで1番目の数値がおかしくなってるだけで別に誤字脱字とかじゃないんですよ splitの代わりにexplodeを使うか http://ameblo.jp/gonta3333/entry-10384282091.html 警告を無理やり非表示にすれば http://d.hatena.ne.jp/Kshi/20100310/1268211701 解決することです とても有名な問題なのでエラー文を読んで検索すればすぐに解決できることです プログラマならせっかく出してくれた警告文を有意義なものとしなければいけません
とりあえず言いたいことだいたいこれに全部書いてあるので読んでください。 http://note.chiebukuro.yahoo.co.jp/detail/n149597
補足
有難うございます。 訂正があります。 ”最初に記述した(1)「sample4.html」の ID:<input type="text" id="id" size="8"/>のBOXに"S0003"と入力”の「S003」と入力に訂正します。
- agunuz
- ベストアンサー率65% (288/438)
$item = split(",", $rec); カンマで分割するのに【非推奨の】splitを使う意味はありません(正規表現を使う部分がない)。 http://php.net/manual/ja/function.split.php explodeで分割してもいいですし、そもそもCSVデータならfgetcsvで読み込むのが妥当では? http://php.net/manual/ja/function.explode.php http://php.net/manual/ja/function.fgetcsv.php
補足
有難うございます。 訂正があります。 ”最初に記述した(1)「sample4.html」の ID:<input type="text" id="id" size="8"/>のBOXに"S0003"と入力”の「S003」と入力に訂正します。
- t_ohta
- ベストアンサー率38% (5239/13707)
質問者さんの書かれたファイル構造から漏れているのかもしれませんが、エラーメッセージには sample4.php というファイルの5行目にエラーがあると書かれています。
補足
有難うございます。 訂正があります。 ”最初に記述した(1)「sample4.html」の ID:<input type="text" id="id" size="8"/>のBOXに"S0003"と入力”の「S003」と入力に訂正します。 sample4.php というファイルの5行目にエラー $item = split(",", $rec);ですが 再入力しましたが、結果は同じでした。
- b0a0a
- ベストアンサー率49% (156/313)
>>何故エラーが出るのでしょうか!? 何故とはどういうことでしょうか!? 警告文を翻訳してくれということでしょうか!? とりあえずその警告文を読んでググり沈めればちゃんと動くようになりますよ
お礼
ナイスです^^ $item = explode(",", $rec); fgets ⇒ explode に変更したところ 800と表示されました。 有難うございました。