質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2154閲覧

変数に文字列が代入しきれない

light

総合スコア17

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/10/25 15:12

編集2015/10/26 07:24

csvファイルのテキスト(ツイートなのですが)を1行ごとに取得し変数に代入するのですが、
時々うまくいかないケースがあり、どうやらある程度の長さになると途中までしか代入できていないようです。

strlen()でその長さを調べてみると、248ないし249となっています。

ググったところ変数の大きさに上限はあるものの、その程度であれば全く問題ないように思うのですが...

なにか考えられる原因はありますでしょうか。

【追記】
情報追加依頼がありましたのでコードと入力ファイルのサンプルを追記します。

lang

1//sample.php 2//csvファイルのテキストを読み込み出力するだけのプログラム 3 4<?PHP 5 6 $filename = "sample.csv"; 7 $fp = fopen( $filename, 'r' ); 8 9 // データが無くなるまでファイル(CSV)を1行ずつ読み込む 10 while( $ret_csv = fgetcsv( $fp, 256 ) ) { 11 // 読み込んだ行について処理 12 for($i = 0; $i < count( $ret_csv ); ++$i){ 13 if($i==1){//テキスト部分 14 //echo $ret_csv[$i]."<br>"; 15 $text[] = $ret_csv[$i]; 16 } 17 } 18 } 19 20 fclose( $fp ); 21 22 //テキストを出力 23 foreach($text as $value){ 24 echo $value; 25 echo "<br>"; 26 } 27 28?>

lang

1//sample.csv 21234,雨ニモマケズ風ニモマケズ雪ニモ夏ノ暑サニモマケヌ,, 31235,丈夫ナカラダヲモチ慾ハナク決シテ瞋ラズイツモシヅカニワラッテヰル,, 41236,一日ニ玄米四合ト味噌ト少シノ野菜ヲタベアラユルコトヲジブンヲカンジョウニ入レズニヨクミキキシワカリソシテワスレズ野原ノ松ノ林ノ陰ノ小サナ萓ブキノ小屋ニヰテ東ニ病気ノコドモアレバ行ッテ看病シテヤリ西ニツカレタ母アレバ行ッテソノ稲ノ朿ヲ負ヒ南ニ死ニサウナ人アレバ行ッテコハガラナクテモイヽトイヒ北ニケンクヮヤソショウガアレバツマラナイカラヤメロトイヒ,, 51237,ヒドリノトキハナミダヲナガシサムサノナツハオロオロアルキミンナニデクノボートヨバレホメラレモセズクニモサレズサウイフモノニワタシハナリタイ,,

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KiyoshiMotoki

2015/10/26 04:52

差し支えなければ、ソースコードと読み込んでいるCSVファイルの内容を提示して下さい。 そうすれば、より詳しい状況が分かるので、具体的な回答を得やすくなると思います。
light

2015/10/26 07:27

コメントありがとうございます。 ソースコードと読み込んでいるCSVファイル全てを提示することは難しかったので、同様の状況になるよう抜粋しサンプルとして追記しました。 以上よろしくお願いします。
guest

回答2

0

ベストアンサー

fgetcsv関数の第2引数に256を設定しているためです。
http://php.net/manual/ja/function.fgetcsv.php

PHP5以降を使用しているなら、第2引数を削除すれば意図通りに動作すると思います。

投稿2015/10/26 07:27

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

light

2015/10/26 08:20

そこは何も気にせずfgetcsvを使っていました... ありがとうございます。
guest

0

区切り文字を誤判定していないでしょうか?
代入ではなく読み込み側が原因の場合もあります。
PHPでCSV読み込みはfgetcsvstr_getcsvがありますが何を使われているでしょうか?

投稿2015/10/25 15:53

shiena

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問