0

私は php の初心者です。私のアプリケーションでは、csv ファイルを読み取り、各行の値を 2 つの変数に格納する必要があります:$namelatin.

 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

                foreach($data as $value)
                {
                        if($i>8){
                        // $fgmembersite->InsertUserBirds($value);
                        echo $value;
                        }

                    }
                     $i++;
                  echo '<br/>' ;

               } fclose($handle);

各行 row には 4 つまたは 3 つの単語 ($nameは最初と 2 番目の単語 (行の長さが 4 単語の場合)) が含まれ$latin、最後の 2 つの単語が格納 されます。ページ

$latin配列を追加するにはどうすればよい$nameですか?

4

2 に答える 2

0

このデータを処理する最善の方法は、より信頼できるソースを探すことです!

このファイルを使用する必要がある場合は、次のことを試してください。

  1. fgets を使用して、ファイルを 1 行ずつ処理します。
  2. 種名はすべて小文字で、属名はすべて大文字になっているため、右端の大文字を検索できます。それ以降はすべてラテン語で、左側はすべて Common です。

より洗練されたアプローチは、 preg_match を使用して最後の大文字を見つけることです。私は正規表現が得意ではないので、改善できることを願っていますが、以下では、配列の最後のインデックスとしてラテン語の名前が「一致」して返されます。ここまでくれば、あとは理解できるはずです。

$matches=array();
$pattern="/([A-Z][a-z ]*)*/";
$testdata="Scabies Mite Sarcoptes scabii";
preg_match($pattern,$testdata,$matches);
var_dump($matches);

PHPと同時に正規表現を学ぶのは大変に思えますが、少しの努力でも報われます。

于 2013-05-26T11:51:28.007 に答える