2017-09-11 17 views
-1

私は次の形式のテキストを含むPHPファイルを持っています。ファイルの内容からPHP配列を作成する

line 1 - "Title","URL","imgURL","tags" 
line 2 - "Title","URL","imgURL","tags" 
line 3 - "Title","URL","imgURL","tags" 

基本的にデータベースのように構成されているので、各行はレコードであり、1番目のセットは常にタイトルです。 2番目の ""のセットは常にURLなどです。

私は経験豊かなプログラマーではなく、想像力を持っています。ファイルの内容から配列を作成する最も良い方法は何ですか?

私は以下を試しましたが、動作しませんでした。

$content = array(file_get_contents("path/content.php")); 

私はデータの構造と配列の作成方法を更新する必要があると思いますが、わかりません。どんな助けでも大歓迎です。

タイトル、URL、imgURL、またはタグを任意のテキスト行から取得できるようにしたいが、それを配列形式で表現する方法はわかりません。

私は、にline1のURLを取得し、$content[1][3]というタグを取得して、line2からタグを取得したいと考えています。

+1

配列として必要な結果が期待されています。あなたの答えにもそれを示してください。 –

+0

期待される結果を示してください。ステートメントで理解するのは難しいです。 –

答えて

1
$file = fopen("path/content.php", "r"); 
while($content[] = fgetcsv($file, 1000, ",")); 

あなたは、あなたが指定されている各要素にアクセスすることができるはずです。

echo $content[0][1]; // echos first line, url 
+0

ありがとう!あなたのソリューションは完全に機能しました。私はそれをよりよく理解したいと思う。 'fgetcsv($ file、1000、"、 "))に1000が何を表していますか? –

+1

1000は1行の最大長ですがオプションですが、それを含めて関数の速度が向上します。 – Enstage

1

ファイルの形式は、CSV(カンマ区切り値)と呼ばれます。 PHPを使用して、機能fgetcsvを使用してCSVファイルを解析することができます:http://php.net/manual/en/function.fgetcsv.php

0

あなたはこのような何かを探していますか?

/** 
* Decodes a full CSV file to an array. 
* 
* @param string $file File to decode 
* 
* @throws \Exception 
* 
* @return array[] 
*/ 
function csv_decode($file) { 
    $fh = fopen($file, 'r'); 

    if($fh === false) 
    { 
     // FIXME: You should replace this with your own exception! 
     throw new \Exception("Failed to open file '$file' for reading"); 
    } 

    $rows = []; 
    while ($row = fgetcsv($fh)) 
    { 
     $rows[] = $row; 
    } 

    return $rows; 
} 

あなたは(カンマ区切り値の略)CSVとして知られているが発生しているフォーマットは

上記の機能は、あなたからわかるように説明してきた構造の配列にデータをデコードあなたの例のデータ上で実行する次のコードの出力:

print_r(csv_decode('values.txt')); 

出力:

Array 
(
    [0] => Array 
     (
      [0] => Title 
      [1] => URL 
      [2] => imgURL 
      [3] => tags 
     ) 

    [1] => Array 
     (
      [0] => Title 
      [1] => URL 
      [2] => imgURL 
      [3] => tags 
     ) 

    [2] => Array 
     (
      [0] => Title 
      [1] => URL 
      [2] => imgURL 
      [3] => tags 
     ) 

) 
関連する問題