【问题标题】:explode mysql string for $wpdb->insert为 $wpdb->insert 分解 mysql 字符串
【发布时间】:2013-07-04 14:56:12
【问题描述】:

我正在尝试分解这个字符串,以便它可以适合 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, '' 不会被正确拆分。你如何处理这些事情?

【问题讨论】:

    标签: php wordpress explode


    【解决方案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 然后可用于将上述字符串转换为数组。这将忽略值内的逗号。

    【讨论】:

    • 是的!这个。它成功了!!)我已经将$array = explode(", ", trim(preg_replace("/[()]/","",$row),",")); 替换为$array = str_getcsv(trim(preg_replace("/[()]/","",$row),","),',',"'");,它现在可以工作了。谢谢你,吉姆
    • @user2437063 没问题。很高兴我能帮忙:)
    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 2012-05-25
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多