質問

私はPHPが得意ではないので、誰か助けてくれれば非常にありがたいです。基本的に、データフィードの各行を解析し、各" |"の間にある情報の各ビットを取得する必要があります。 -その後、データベースに追加できます。 explodeを使用して" |"の間から情報を取得できると思いますが、テキストファイルの各行を単数形として解析するには少し助けが必要です。それをさらにシンプルにするために、変数の各行を使用する必要があります。テキストエリアとフォームを使用して変数にコンテンツを送信します。どんな助けも大歓迎です!

役に立ちましたか?

解決

ファイルを行の配列に読み込み、すべての分割を次のように実行できます。

$lines = file("filename");
foreach($lines as $line) {
    $parts = explode("|", $line);
    // do the database inserts here
}

既に述べたように変数にすべてのテキストがある場合(たとえば、file_get_contents()のようなもので)、最初に\ nで爆発してから、上記と同じforeachステートメントを実行できます。

他のヒント

テキストエリアの投稿を読み上げている場合、区切り文字として改行文字を使用するexplode関数を使用して、各「行」を取得できます。配列の新しい要素として変数に追加すると、配列要素を爆発させることができます。

i.e。

$sometext = "balh | balh blah| more blah \n extra balh |some blah |this blah";

$lines = explode("\n", $sometext);
foreach($lines as $oneLine)
{
    $lineElements[] = explode("|", $oneLine);
}

その後、エレムの2次元配列があります。

ファイルを読み取る場合は、ここに記載されているファイル機能を使用できます。

http://us2.php.net/manual/en/function .file.php

ファイルの各行を配列の要素として取得します。

CSV形式を自動検出できる既製のPHP解析ライブラリがあります。

例:

$reader = new Dfp_Datafeed_File_Reader();
$reader->setLocation('test.csv');

foreach ($reader AS $record) {
    print_r($record);
}

こちらをダウンロードできます。また、いくつかのドキュメントがありますこちら

ファイルが小さい場合は、 file()t oを使用して配列に読み込むことができます。 、要素ごとに1行。

失敗した場合、 fgets()

を使用してループ内のファイルを読み取ります
$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
   $buffer = fgets($handle, 4096);
   echo $buffer;
}
fclose($handle);

explodeを使用して両方を取得できます:

$myFile = "File.txt";
$fh = fopen($myFile, 'r');
$data = fread($fh);
fclose($fh);
$newLines = explode("\n",$data);

foreach($newLines as $s)
{
  $parsed = explode("|",$s);
  foreach($parsed as $item)
  {
    // do your db load here
  }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top