如何在php中提取预定义字符串之间的文本
我们正在将系统从GetText更改为MYSQL数据库。 我想将原始“.po”文件中的所有翻译字符串和翻译ID放入数据库 为此,我需要读取文件并循环每一行,这很容易。 困难的部分是当我看到“msgid”或“msgstr”时,我需要提取数据并将其插入数据库 原始文件如下所示:如何在php中提取预定义字符串之间的文本,php,explode,gettext,substr,Php,Explode,Gettext,Substr,我们正在将系统从GetText更改为MYSQL数据库。 我想将原始“.po”文件中的所有翻译字符串和翻译ID放入数据库 为此,我需要读取文件并循环每一行,这很容易。 困难的部分是当我看到“msgid”或“msgstr”时,我需要提取数据并将其插入数据库 原始文件如下所示: msgid "inactive_ad_detail_text" msgstr "This ad doesn't exists" msgid "breadcrumb_search" msgstr "Search the site
msgid "inactive_ad_detail_text"
msgstr "This ad doesn't exists"
msgid "breadcrumb_search"
msgstr "Search the site"
(... etc etc ...)
如何在引号之间提取id的名称(msgid)和文本(msgstr)
此外,我还有一些转义文本和两行文本,如:
msgid "question_fill_form"
msgstr ""
"Please fill the form"
"<br>All fields are mandatory"
msgid“问题填写表”
msgstr“”
“请填写表格”
“
所有字段都是必填字段”
或
msgid "offer_contact_error"
msgstr ""
"Error detected "
"please click \"<em>restart</em>\" on the right side."
msgid“报价\联系方式\错误”
msgstr“”
“检测到错误”
请单击右侧的“重新启动”
我想我需要在行尾之前检测[msgid”]最后一个[“]引号,但我真的不知道如何在PHP中实现
谢谢你的帮助,
Lio这有一个图书馆。 如果不使用composer,则可以按顺序包含文件或使用自动加载程序加载这些文件
require_once('Sepia/InterfaceHandler.php');
require_once('Sepia/StringHandler.php');
require_once('Sepia/FileHandler.php');
require_once('Sepia/PoParser.php');
这有一个图书馆。 如果不使用composer,则可以按顺序包含文件或使用自动加载程序加载这些文件
require_once('Sepia/InterfaceHandler.php');
require_once('Sepia/StringHandler.php');
require_once('Sepia/FileHandler.php');
require_once('Sepia/PoParser.php');
使用
文件
、strpos
和substr
功能的解决方案:
假设输入文件msgdata
包含以下内容:
msgid "question_fill_form"
msgstr ""
"Please fill the form"
"<br>All fields are mandatory"
msgid "offer_contact_error"
msgstr ""
"Error detected "
"please click \"<em>restart</em>\" on the right side."
输出:
Array
(
[0] => Array
(
[msgid] => "question_fill_form"
[msgstr] => ""
"Please fill the form"
"
All fields are mandatory"
)
[1] => Array
(
[msgid] => "offer_contact_error"
[msgstr] => ""
"Error detected "
"please click \"restart\" on the right side."
)
)
使用
文件
、strpos
和substr
功能的解决方案:
假设输入文件msgdata
包含以下内容:
msgid "question_fill_form"
msgstr ""
"Please fill the form"
"<br>All fields are mandatory"
msgid "offer_contact_error"
msgstr ""
"Error detected "
"please click \"<em>restart</em>\" on the right side."
输出:
Array
(
[0] => Array
(
[msgid] => "question_fill_form"
[msgstr] => ""
"Please fill the form"
"
All fields are mandatory"
)
[1] => Array
(
[msgid] => "offer_contact_error"
[msgstr] => ""
"Error detected "
"please click \"restart\" on the right side."
)
)
谢谢,a我不使用composer,我需要包括什么文件?包括('/Sepia/PoParser.php');更新了答案。谢谢,a我不使用composer,我需要包括什么文件?包括('/Sepia/PoParser.php');更新了答案。