0

この文字列を分解しようとしているので、wordpress の "$wpdb->insert" 関数に適合します。これは挿入する文字列です。このファイルには、次のような約 42k の文字列が含まれています。

(601, 'STANDARD', 'Adjuntas', '', 'Colinas Del Gigante, Jard De Adjuntas, Urb San Joaquin', 'PR', 'Adjuntas', 'America/Puerto_Rico', '787,939', '18.16', '-66.72', 'NA', 'US', 0, 0, ''),

これがコードです

if ( file_exists(realpath(dirname(__FILE__)).'/install/usa_zip_codes.sql')){
                $filecontent = explode("\n",file_get_contents( realpath(dirname(__FILE__)).'/install/usa_zip_codes.sql'));
                foreach( $filecontent as $row){
                    $array = array();
                    $array = explode(", ", trim(preg_replace("/[()]/","",$row),","));
                    $wpdb->insert( 
                            $wpmyplugin_table['yp_usa_zip_codes'], 
                            array( 
                                    'zip' => $array[0], 
                                    'type' => trim($array[1],"'"),
                                    'primary_city' => trim($array[2],"'"),
                                    'acceptable_cities' => trim($array[3],"'"),
                                    'unacceptable_cities' => trim($array[4],"'"),
                                    'state' => trim($array[5],"'"),
                                   ....

しかし、「Colinas Del Gigante、Jard De Adjuntas、Urb San Joaquin」のような文字列がある場合、それも配列要素に分割されます。で分解しようとしましたexplode(", '",が、この部分, 0, 0, ''が正しく分割されません。これらのことをどのように扱いますか?

4

1 に答える 1

1

str_getcsvを見てください。変換できるはずです

(601, 'STANDARD', 'Adjuntas', '', 'Colinas Del Gigante, Jard De Adjuntas, Urb San Joaquin', 'PR', 'Adjuntas', 'America/Puerto_Rico', '787,939', '18.16', '-66.72', 'NA', 'US', 0, 0, ''),

の中へ:

601, 'STANDARD', 'Adjuntas', '', 'Colinas Del Gigante, Jard De Adjuntas, Urb San Joaquin', 'PR', 'Adjuntas', 'America/Puerto_Rico', '787,939', '18.16', '-66.72', 'NA', 'US', 0, 0, ''

str_getcsv次に、上記の文字列を配列に変換するために使用できます。これにより、値内のコンマが無視されます。

于 2013-07-04T15:08:17.187 に答える