Bueno aquí estoy jodiendo la paciencia otra vez. Sucede que también necesito extraer otras líneas además de [msgid], [msgstr] y las demás mencionadas. Se trata de [#:] y [#,]. Ambas son importantes para el proyecto y hasta hace poco no lo había tomado en cuenta.
Utilicé el código del pana Abimael para esto, modificando la expresión regular contenida en el preg_match:
Código PHP:
Ver originalforeach($leer as $k => $l){
// preg_match('/^(\w+(?:\[\d\])?).*/is', $l, $m); Original
preg_match('/^(#(\:|,).*|\w+(?:\[\d\])?).*/', $l, $m); // Modificada $arr[$n][$m[1]] = $k + 1 .' '. $m[0];
$bool = false;
}
elseif(!$bool && empty($m[1])) { $bool = true;
$n++;
}
}
Entonces me devuelve este resultado (ejemplo):
Código PHP:
Ver original (
[#: wp-admin/edit-category-form.php:80] => 35 #: wp-admin/edit-category-form.php:80
[#: wp-admin/edit-link-category-form.php:27] => 36 #: wp-admin/edit-link-category-form.php:27
[#: wp-admin/includes/template.php:266] => 37 #: wp-admin/includes/template.php:266
[msgid] => 38 msgid "Update Category"
[msgstr] => 39 msgstr "Actualizar categoría"
)
Fíjense que al array [: ...] lo acompaña el texto de toda la línea. Lo ideal es que quede así:
Código PHP:
Ver original (
[#:] => 35 #: wp-admin/edit-category-form.php:80
[#:] => 36 #: wp-admin/edit-link-category-form.php:27
[#:] => 37 #: wp-admin/includes/template.php:266
[msgid] => 38 msgid "Update Category"
[msgstr] => 39 msgstr "Actualizar categoría"
)
Creo que el problema es el primer asterisco de la expresión; ésta se acomoda cuando se lo quito, pero en contraparte sólo muestra un "[:]" dejando por fuera a los demás (en los casos de arrays con muchos "[:]") ¿Cuál es la manera correcta de configurar esa expresión?.