Php 有没有一种简单的方法可以以编程方式列出.MO文件中的所有消息ID?

Php 有没有一种简单的方法可以以编程方式列出.MO文件中的所有消息ID?,php,gettext,Php,Gettext,我有一个很大的ol'.po文件,其中包含我的PHP应用程序所需的所有面向用户的字符串。我想知道是否有一个PHP函数可以用来获取存储在.po或.mo中的所有msgid字符串的列表 我没有看到一个发布的PHP函数可以这样做。有人知道类似的事情,或者我必须自己手动解析我的.po文件吗 这是我最希望看到的: $msgids = magic_gettext_keys_function('mydomain'); foreach ($msgids as $msgid) { do_something_a

我有一个很大的ol'.po文件,其中包含我的PHP应用程序所需的所有面向用户的字符串。我想知道是否有一个PHP函数可以用来获取存储在.po或.mo中的所有msgid字符串的列表

我没有看到一个发布的PHP函数可以这样做。有人知道类似的事情,或者我必须自己手动解析我的.po文件吗

这是我最希望看到的:

$msgids = magic_gettext_keys_function('mydomain');
foreach ($msgids as $msgid) {
    do_something_awesome($msgid);
}

还没有收到任何答案,我假设没有API调用为我做这件事。但是,从.po文件中提取msgid字符串几乎是微不足道的:

$path = $GLOBALS['LOCALE_DIR'] . '/en/LC_MESSAGES/mydomain.po';
$poSrc = file_get_contents($path);
preg_match_all('/msgid\s+\"([^\"]*)\"/', $poSrc, $matches);
$msgids = $matches[1];

foreach ($msgids as $msgid) {
    do_something_awesome($msgid);
}