0

一致を preg_match_all から csv ファイルにエクスポートしようとしていますが、次のエラーが発生します。

Warning: fputcsv() expects parameter 2 to be array, string given

これは私が問題を抱えているコードのセクションです。一致を csv ファイルにエクスポートできるように変更するにはどうすればよいですか?

preg_match_all($pattern, $pos, $matches);

$fp = fopen('data.csv', 'w');
foreach($matches[0] as $data){  
 fputcsv($fp,$data);
}
fclose($fp);
4

2 に答える 2

0

文字列の構造や正規表現を知らなくても、これは単なる推測ですが、キャプチャ グループに基づいて結果の配列をグループ化するデフォルトではなく、一致によって配列グループPREG_SET_ORDERを作成するために使用したいようです。パターンで(ドキュメントには例があります)。$matchesPREG_PATTERN_ORDER

preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
    // Get rid of $match[0] (the overall match)
    unset($match[0]);
    // Write the captured groups to the CSV file
    fputcsv($fp, $match);
}

それがあなたの求めているものでない場合は、必要な配列の構造$matches、および/または入力 ( $subject) と予想される出力 (CSV ファイルの例) などの詳細情報が必要です。

于 2010-10-05T17:59:56.167 に答える
0

試す:

preg_match_all($pattern, $pos, $matches);

$fp = fopen('data.csv', 'w');
fputcsv($fp,$matches[0]);
fclose($fp);

2 番目の引数は配列である必要があります。一致 (配列) をループして一度に 1 つずつ追加する代わりに、一致配列全体を渡すだけです ( $matches[0])

于 2010-10-05T17:17:43.787 に答える