質問

ようにしているからデータを読み込むため。csvファイルへの出力がページ上のテキストで与えます。

で初めてになっていることかライヤ少な問題です。

My.csvファイルを取得するopenened Excelによるデフォルト)は、複数の行を拝読させていただきました全体のものとして長い文字列になります。

このように:

$contents = file_get_contents("files/data.csv");

この例ではファイルを作ってみました2つあります。

ポールBlueberryroad 85く懐中電灯、バッグ月20日 2008年4:39pm

Hellen Blueberryroad 85米lens13mm、懐中電灯、バッグ、ExtraBatteries月 20,2008年,16:41:32

が読み込まれた文字列によるPHPはこの:

Paul;Blueberryroad85;取り扱いについて懐中電灯、バッグ;November20,2008,4:39pmHellen;Blueberryroad85;米国;lens13mm、懐中電灯、バッグ、ExtraBatteries;November20,2008年,16:41:32

私は分裂す:

list($name[], $street[], $country[], $accessories[], $orderdate[]) = split(";",$contents);

何をしたいのは、$name[]を含む"ポール"と"Hellen"しています。その配列の値を、それぞれの列あります。

をいただくこともできましたのみを取得しポールのコンテンツの$orderdate[】

November20,2008,4:39pmHellen

すべての行が連結され.きっか実現できるかが必要か。

編集:液見つかり、一weridのもの残存

まるでこの曲のコード:

$fo = fopen("files/users.csv", "rb+");
while(!feof($fo)) {
  $contents[] = fgetcsv($fo,0,';');
}
fclose($fo);

何らかの理由でallthough私のCSVファイルのみ2列を返します2列1boolean.第2についてのデータ配列をbooleanは0になります。

役に立ちましたか?

解決

fgetcsv() る意識をCSVファイル構造を有し、指定のオプションの取り扱いCSVファイルです。できます。 str_getcsv() の内容のファイルです。

他のヒント

ファイル) 機能を読み込みファイルを配列で、ラインエントリの配列になります。

できますので次のように:

$rows = array();
$name = array();
$street = array();
$country = array();

$rows = file("file.csv");
foreach($rows as $r) {
    $data = explode(";", $r);
    $name[] = $data[0];
    $street[] = $data[1];
    $country[] = $data[2];
}

まるでこの曲のコード:

$fo = fopen("files/users.csv", "rb+");
while(!feof($fo)) {
  $contents[] = fgetcsv($fo,0,';');
}
fclose($fo);

何らかの理由でallthough私のCSVファイルのみ2列を返します2列1boolean.第2についてのデータ配列をbooleanは0になります。

言の約fgetcsvに通知するものとします。

まだお答え、教育目的です。最初のものかわからないとの差額データ(comasの文字列に読み込PHP"(代替一部のスペースとセミコロンが、すべての?).PS.:ご本人の了解のもと、掲載していソースコードのメッセージなんだかとってもおいしそうに奇ミックスのTSV(タブ)およびCSV(コマ).

横かった場合にはこのように、必要な分割が初のファイルライン、そしてライン。

一番いいのはもちろんfgetcsv()として指摘しなければなりません。

$f = fopen ('test.csv', 'r');
while (false !== $data = fgetcsv($f, 0, ';'))
    $arr[] = $data;
fclose($f);

がない場合は、内容を変数とした分割してありますので、str_getcsvできない使用できます:

function str_split_csv($text, $seperator = ';') {
    $regex = '#' . preg_quote($seperator) . '|\v#';
    preg_match('|^.*$|m', $text, $firstline);
    $chunks = substr_count($firstline[0], $seperator) + 1;
    $split = array_chunk(preg_split($regex, $text), $chunks);
    $c = count($split) - 1;
    if (isset($split[$c]) && ((count($split[$c]) < $chunks) || (($chunks == 1) && ($split[$c][0] == ''))))
        unset($split[$c]);
    return $split;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top