我正在尝试爆炸这个字符串,因此它可以在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,'' 不能正确分割。你是如何处理这些事情的?
答案 0 :(得分: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
将上面的字符串转换为数组。这将忽略值内的逗号。