2016-04-10 8 views
2

私は現在、PHPを学んでいて、explode()関数を自分の望むように動作させるのに苦労しています。test filtからすべての値をインデックス[0]に保存するPHP explode()

次のテキストファイル「vacations.txt」は含まれています:

"54321", "Big Island Hawaii", "2999.00", "Best beaches big volcano" 
"87654", "Cruise Caribbean", "3500.00", "Ocean view with balcony Cancun Jamaica etc." 
"09876", "Rome and Madrid", "3999.00", "I see Italy I see Spain" 
"32198", "Ski Tahoe", "1200.00", "Ski all day Gamble all night" 

私は、カンマで区切られた配列にこれを入れて試してみました。 print_r()を使うと、配列の最初のインデックスにすべて入っていることがわかります。 は、ここに私のコードです:ここで

function displaySpecials() { 
    $prodString = include("vacation.txt"); 
    $vacArray = explode(',', $prodString); 
     print_r($vacArray); 
} 

が出力されます。

"54321"、 "ビッグアイランドハワイ"、 "2999.00"、 "最高のビーチ大きな火山" "87654"、「クルーズカリブ海 "、" 3500.00 "、"バルコニー付オーシャンビュー カンクンジャマイカなど " 「09876」、「ローマとマドリード」、「3999.00」、「私はスペインを参照してください イタリア」「32198」「スキータホ」「1200.00」「スキー一日中 オールナイトで賭ける」配列([0] => 1)

私はexplode()について見つけ出すことができるすべてを検索して読みましたが、なぜこれが起こっているのかわかりません。私の最終目標は、4行4列の表に多次元配列を出力して、テキストファイルに16個の値を表示することです。

すべてのサポートをよろしくお願いいたします。前もって感謝します!

+0

予想される出力が何であるかは正確にはわかりませんが、ここを見てください:http://stackoverflow.com/a/12286933/3933332 – Rizier123

答えて

2

ザ・ステートメントが含まれており、指定されたファイルを評価しています。

includeは、基本的には他のPHPスクリプトも含めて評価します。

コンテンツを取得する必要があります。

以下、fileを使用してファイルの内容を行単位で取得しました。

function displaySpecials() { 
    $lines = file("vacation.txt"); // will return lines in array 
    foreach($lines as $line){ // loop for each line 
     $vacArray[] = explode(",", $line); // insert resulting array to last index of $varArray 
    } 
    print_r($vacArray); 
    return $vacArray; 
} 

はまた、ファイルは、通常のように見える.csvあなたはfgetcsvを使用することができます。公式docsの例を確認してください。

0

include("vacation.txt")file_get_contents("vacation.txt")に置き換えてください。

include

ザ・ステートメントが含まれており、指定されたファイルを評価しています。

file_get contents

あなたのコードは次のようになります。文字列に

をファイル全体を読み込み:私はしたい、これは基本的にcsvファイルですので

function displaySpecials() { 
    $prodString = file_get_contents("vacation.txt"); 
    $vacArray = explode(',', $prodString); 
     print_r($vacArray); 
} 
0

fgetcsvのようなものをお勧めします。

if (($h = fopen('vacation.txt', 'r')) !== false) { 
    while (($data = fgetcsv($h, 1000, ',')) !== false) { 
     // Fetch the data here 
    } 
} 

オプションで、str_getcsvを使用することができます。

$data = array_map('str_getcsv', file('vacation.txt')); 
関連する問題