فهرست منبع

Merge remote branch 'stealth35/use_splfileinfo'

* stealth35/use_splfileinfo:
  tab to spaces
  use SplFileInfo insteed fgetcsv
Fabien Potencier 14 سال پیش
والد
کامیت
3a46ed58b3
1فایلهای تغییر یافته به همراه8 افزوده شده و 3 حذف شده
  1. 8 3
      src/Symfony/Component/Translation/Loader/CsvFileLoader.php

+ 8 - 3
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) {
+        
+        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;
             }