Beispiel #1
0
 function export_to_file_handle($fh)
 {
     $entries = array_filter($this->entries, array($this, 'is_entry_good_for_export'));
     ksort($entries);
     $magic = 0x950412de;
     $revision = 0;
     $total = count($entries) + 1;
     // all the headers are one entry
     $originals_lenghts_addr = 28;
     $translations_lenghts_addr = $originals_lenghts_addr + 8 * $total;
     $size_of_hash = 0;
     $hash_addr = $translations_lenghts_addr + 8 * $total;
     $current_addr = $hash_addr;
     fwrite($fh, pack('V*', $magic, $revision, $total, $originals_lenghts_addr, $translations_lenghts_addr, $size_of_hash, $hash_addr));
     fseek($fh, $originals_lenghts_addr);
     // headers' msgid is an empty string
     fwrite($fh, pack('VV', 0, $current_addr));
     $current_addr++;
     $originals_table = chr(0);
     $reader = new POMO_Reader();
     foreach ($entries as $entry) {
         $originals_table .= $this->export_original($entry) . chr(0);
         $length = $reader->strlen($this->export_original($entry));
         fwrite($fh, pack('VV', $length, $current_addr));
         $current_addr += $length + 1;
         // account for the NULL byte after
     }
     $exported_headers = $this->export_headers();
     fwrite($fh, pack('VV', $reader->strlen($exported_headers), $current_addr));
     $current_addr += strlen($exported_headers) + 1;
     $translations_table = $exported_headers . chr(0);
     foreach ($entries as $entry) {
         $translations_table .= $this->export_translations($entry) . chr(0);
         $length = $reader->strlen($this->export_translations($entry));
         fwrite($fh, pack('VV', $length, $current_addr));
         $current_addr += $length + 1;
     }
     fwrite($fh, $originals_table);
     fwrite($fh, $translations_table);
     return true;
 }
 /**
  * PHP5 constructor.
  */
 function __construct($str = '')
 {
     parent::POMO_Reader();
     $this->_str = $str;
     $this->_pos = 0;
 }
Beispiel #3
0
 function POMO_StringReader($str = '')
 {
     parent::POMO_Reader();
     $this->_str = $str;
     $this->_pos = 0;
 }
Beispiel #4
0
 function __construct($str = '')
 {
     parent::__construct();
     $this->_str = $str;
     $this->_pos = 0;
 }