2013-07-04 3 views
0

이 문자열을 폭발 시키려고합니다. 따라서 wordpress에 "$ wpdb-> insert"함수를 넣을 수 있습니다. 삽입 할 문자열입니다. 이 파일은 약 42K이 같은 문자열을 포함 :이 코드

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],"'"), 
            .... 

하지만

(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, ''), 

을 내가 '콜리 나스 델 GIGANTE, JARD 드 Adjuntas,로 Urb 산 호아킨' 같은 문자열이있을 때 , 배열 요소로 분할합니다. explode(", '",에 의해 폭발하려고 시도했지만이 부분은 , 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. 이렇게하면 값 내부의 쉼표가 무시됩니다.

+0

예! 이 하나. $ array = explode (",", preg_replace ("/ [()] /", "", $ row), ","));'to' $ array = str_getcsv (trim (preg_replace ("/ [()] /", "", $ row), ","), ',', " '"); 짐, 감사합니다 – Shirker

+0

@ user2437063 괜찮습니다. 다행히 도울 수있어 :) – Jim