################################\n"; var_dump($str); var_dump($arr); echo "\n";*/ return $arr; } function parseFile($file) { $parsedEnt = array(); $newEnt = false; $prevStringLine = false; $entities = array(); // $file = file_get_contents($this->pipeline_directory . $file); // var_dump(mb_substr($file, 0,3)); // var_dump(substr($file, 0,3)); // var_dump($file); $file = $this->removeBOM($file); // var_dump($file); $file = $this->removeComments($file); // var_dump($file); $lines = explode("\n", $file); if ($this->debug) { echo "
\n\n"; } $line_no=1; foreach ($lines as $line) { if ($this->debug) { echo "\n\t#################### LINE NUMBER " . $line_no++ . "\n\n"; } // var_dump($line); $line = rtrim($line); $parsedLine = $this->parseLine($line); if ($this->debug) { echo "%%%% parsedLine\n"; var_dump($parsedLine); echo "\n"; echo "%%%% prevStringLine\n"; var_dump($prevStringLine); echo "\n"; } if (!$parsedLine) continue; // if line start with diff (diff files) or hash_value (translated files) and before was line with translation, then we start new ent if ($prevStringLine && ( ($parsedLine["type"] == "diff" && $parsedEnt) || ($parsedLine["type"] == "hash_value" && $parsedEnt) )) { /* echo "%%%% prevStringLine %%%%%\n"; var_dump($parsedEnt);*/ $newEnt = true; } if ($newEnt) { if ($this->debug) { echo "\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; echo "\t%%%% newEnt %%%%%%%%% newEnt %%%%%%%%% newEnt %%%%%%%%% newEnt %%%%%\n"; echo "\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n"; var_dump($parsedEnt); } if (!isset($parsedEnt["diff"]) && !isset($parsedEnt["index"])) $parsedEnt["index"] = $parsedEnt["internal_index"]; $entities[] = $parsedEnt; $parsedEnt =array(); $newEnt = false; } if ($parsedLine["type"] == "internal_index") $parsedEnt["internal_index"] = $parsedLine["index"]; if ($parsedLine["type"] == "string") { $prevStringLine = true; if ($this->debug) { echo "%%%% parsedEnt %%%%%\n"; var_dump($parsedEnt); // echo "%%%% parsedLine %%%%%\n"; // var_dump($parsedLine); } if (!$parsedLine['identifier']) { if ($this->debug) echo "ZLACZENIE \n"; if ($this->debug && !isset($parsedEnt['string'])) { echo "!isset parsedEnt['string']\n"; var_dump($line); var_dump($parsedEnt); var_dump($parsedLine); } $parsedEnt['string'] .= $parsedLine['string'] . "\n"; } else { if ($this->debug) echo "DODANIE \n"; $parsedEnt += $parsedLine; $parsedEnt['string'] .= "\n"; } if ($this->debug) { echo "%%%% parsedEnt after %%%%%\n"; var_dump($parsedEnt); } } else $prevStringLine = false; if ($parsedLine["type"] == "diff") { $parsedEnt["diff"] = $parsedLine["command"]; $parsedEnt["index"] = $parsedLine["index"]; } } if ($parsedEnt) { if (!isset($parsedEnt["diff"]) && !isset($parsedEnt["index"])) $parsedEnt["index"] = $parsedEnt["internal_index"]; $entities[] = $parsedEnt; } if ($this->debug) { echo ""; var_dump($entities); echo "\n"; } return $entities; } } ?>