geonames.orgのcsv ファイルを処理しているため、エンクロージャーなしで csv 行を取得する必要があります。
現在、fgetcsv()では、パラメーターに単一の文字を指定する必要があり、$enclosure
指定しない場合は CSV データを処理しません。
PHPネイティブ機能を使用して、囲み文字のないcsvデータを取得するにはどうすればよいですか?
geonames.orgのcsv ファイルを処理しているため、エンクロージャーなしで csv 行を取得する必要があります。
現在、fgetcsv()では、パラメーターに単一の文字を指定する必要があり、$enclosure
指定しない場合は CSV データを処理しません。
PHPネイティブ機能を使用して、囲み文字のないcsvデータを取得するにはどうすればよいですか?
前述のとおり、最も簡単なのは fgetcsv() をまったく使用しないことです。単純なfgets () 関数を使用して CSV から各行を読み取り、explode () を使用して行ごとにすべての異なるフィールドの配列を作成できます。
以下に小さな例を示します。
$handle = fopen("foo.csv", "r");
$i = 1; // for test output
while (($buffer = fgets($handle)) !== false) {
$fields = explode(";", $buffer); // assuming that fields are separated with semicolons
$j = 1;
// Test output
echo "Line $i: ";
// This is just for show, you can use a regular for loop instead
foreach ($fields as $field) {
echo "Field $j: $field";
$j++;
}
echo "\n";
$i++;
}
fclose($handle);