如何解决查找用特定字符包装的文本,并将该文本用作函数的参数
|| 我正在将一些HTML从数据库输出到页面,其中包含如下结构:<p>Department: *|accounting|*</p>
我想查找并替换所有用|换行的文本和并将中间的单词用作我的翻译功能的变量。
我找到了部分答案。你们可以帮我剩下的吗?谢谢。
这是我在寻找的东西...
$html_from_database = \"<p>Department: *|accounting|*</p>\";
$updated_html = preg_replace(\"*|(.*?)|*\",translate(\'accounting\'),$html_from_database);
这样的事情可能吗?那么正则表达式呢?是不是太耗费资源或贪婪?请注意,|之间的唯一字符和将是a-z A-Z -_ 0-9。
提前致谢。
解决方法
试试这个,我刚刚测试了一下,它的工作原理是:
preg_match_all(\'/\\|(.*?)\\|/\',$source,$matches);
foreach($matches[1] as $match) {
$source = str_replace($match,translate($match),$source);
}
$source
是您的原文。
,我将分两步进行操作,找到匹配项,然后在每个步骤上调用translate函数并建立结果字符串。像这样的伪代码:
matches = preg_find(\".*(\\|([a-zA-Z0-9\\-_]*)\\|).*\",sourceHtml)
foreach match in matches
outputHtml += sourceHtml(section between previous match and this one)
outputHtml += translate(inner group from match)
record end position of match
outputHtml += end of sourceHtml
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。