3

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

4

5 に答える 5

4

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

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

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

于 2008-10-20T21:49:08.040 に答える
2

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

すなわち

$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

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

于 2008-10-20T21:51:19.643 に答える
1

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

例:

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

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

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

于 2012-06-06T12:42:39.457 に答える
0

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

それができない場合は、 fgets()を使用してループ内でファイルを読み取ります

$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
   $buffer = fgets($handle, 4096);
   echo $buffer;
}
fclose($handle);
于 2008-10-20T21:50:02.233 に答える
0

爆発を使用して両方を取得できます。

$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
  }
}
于 2008-10-20T21:52:33.850 に答える