Bueno se me ocurrió que con expresiones regulares lo puedes hacer aún más compacto
Código PHP:
Ver original<?php
$archivo = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['SCRIPT_FILENAME']) . '/lang/prueba.po'; $leer = file($archivo, FILE_IGNORE_NEW_LINES
);
$bool = true;
$n = 0;
foreach($leer as $l){
if(!empty($m[1])){ $arr[$n][$m[1]] = $m[0]; $bool = false; } elseif(!$bool && empty($m[1])){ $bool = true; $n++; } }
foreach($arr as $a){
echo (!empty($a['msgid']) ?
$a['msgid'] . '<br />' : '') . (!empty($a['msgstr']) ?
$a['msgstr'] . '<br />' : '') . (!empty($a['msgstr[0]']) ?
$a['msgstr[0]'] . '<br />' : '') . (!empty($a['msgid_plural']) ?
$a['msgid_plural'] . '<br />' : '') . (!empty($a['msgstr[1]']) ?
$a['msgstr[1]'] . '<br />' : '') . '<br />'; }
Tal vez, exista alguna forma aún más compacta pero con el poco tiempo que tengo pude hacer este ejemplo.