2011-09-05 4 views
-1

이 기능은 wordpress의 projectmanager 플러그인의 일부입니다. 나는 CSV 파일을 가져 오려고하는데,이 CSV 파일에는 "Adrián"이나 "Damián"과 같은 이름을 사용하기 때문에 악센트가 포함되어 있습니다. 그러나이 코드가 해당 이름을 전달하면 "Adri"및 "Dami"를 강조하는 문자의 모든 것을 삭제합니다.액센트 뒤에 문자를 삭제하는 Wordpress PHP 함수.

내가이 버그를 제거하기 위해 바꿀 수있는 것이 있습니까?

function importDatasets($project_id, $file, $delimiter, $cols) 
{ 
    if (!current_user_can('import_datasets')) { 
     $this->setMessage(__("You don't have permission to perform this task", 'projectmanager'), true); 
     return; 
    } 


    if ($file['size'] > 0) { 
     /* 
     * Upload CSV file to image directory, temporarily 
     */ 
     $new_file = parent::getFilePath().'/'.basename($file['name']); 
     if (move_uploaded_file($file['tmp_name'], $new_file)) { 
      $handle = @fopen($new_file, "r"); 
      if ($handle) { 
       if ("TAB" == $delimiter) $delimiter = "\t"; // correct tabular delimiter 

       $i = 0; $l=0; // initialize dataset & line counter 
       while (!feof($handle)) { 
         $buffer = fgets($handle, 4096); 
         $line = explode($delimiter, $buffer); 

         if ($l > 0 && $line) { 
         $name = $line[0]; 
         $categories = empty($line[1]) ? '' : explode(",", $line[1]); 
      /* 
         * get Category IDs from titles 
         */      
         $cat_ids = array(); 
         if (!empty($categories)) { 
          foreach ($categories AS $category) { 
          $cat_ids[] = get_cat_ID($category); 
           } 
          } 

         // assign column values to form fields 
         foreach ($cols AS $col => $form_field_id) { 
          $meta[$form_field_id] = $line[$col]; 
         } 

         if ($line && !empty($name)) { 
          $this->addDataset($project_id, $name, $cat_ids, $meta); 
          $i++; 
         } 
        } 
        $l++; 
       } 
       fclose($handle); 

       $this->setMessage(sprintf(__('%d Datasets successfully imported', 'projectmanager'), $i)); 
      } else { 
       $this->setMessage(__('The file is not readable', 'projectmanager'), true); 
      } 
     } else { 
      $this->setMessage(sprintf(__('The uploaded file could not be moved to %s.'), parent::getFilePath())); 
     } 
     @unlink($new_file); // remove file from server after import is done 
    } else { 
     $this->setMessage(__('The uploaded file seems to be empty', 'projectmanager'), true); 
    } 
} 
+0

당신이 정확한 지점을 가리시겠습니까 :

이 문서는 PHP에 국제 문자 집합을 다루는 정말 좋은 출발점은 무엇입니까? –

+0

나는 정말로 모른다. 나는 그것이이 기능이라는 것을 알고있다. 대부분 데이터 세트 및 행 카운터 주석 초기화 후에 발생합니다. – Unckmania

답변