浏览代码

use SplFileInfo insteed fgetcsv

stealth35 14 年之前
父节点
当前提交
58cd03cedf
共有 1 个文件被更改,包括 9 次插入4 次删除
  1. 9 4
      src/Symfony/Component/Translation/Loader/CsvFileLoader.php

+ 9 - 4
src/Symfony/Component/Translation/Loader/CsvFileLoader.php

@@ -30,12 +30,17 @@ class CsvFileLoader extends ArrayLoader implements LoaderInterface
     public function load($resource, $locale, $domain = 'messages')
     {
         $messages = array();
-        $file = @fopen($resource, 'rb');
-        if (!$file) {
-            throw new \InvalidArgumentException(sprintf('Error opening file "%s".', $resource));
+        
+        try {
+        	$file = new \SplFileObject($resource, 'rb');
+        } catch(\RuntimeException $e) {
+        	throw new \InvalidArgumentException(sprintf('Error opening file "%s".', $resource));
         }
+        
+        $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY);
+        $file->setCsvControl(';');
 
-        while (($data = fgetcsv($file, 0, ';')) !== false) {
+        foreach($file as $data) {
             if (substr($data[0], 0, 1) === '#') {
                 continue;
             }