我们正在基于相同的 codeigniter 代码库创建 2 个应用程序。这两个应用程序都使用基于语言的 XML 文件(我们不能使用本机 CI 语言库),因此每个应用程序的每种语言都有一个 XML 文件。
在这些 XML 文件中是文本,根据您正在查看的应用程序,这些文本在输出时会采用不同的格式。(我们正在使用简单的 XML 加载 XML,然后按名称输出所需的元素)
应用程序 1 的示例 XML 提取可能是:
<instructions>
<instruction>**<strong>**Lorem ipsum dolor sit**</strong>** amet, consectetur adipisicing elit, sed doeiusmod tempor incididunt ut labore et dolore magna aliqua</instruction>
</instructions>
示例应用程序 2 提取可能是:
<instructions>
<instruction>Lorem ipsum dolor sitamet, consectetur adipisicing elit, sed doeiusmod tempor incididunt ut labore et **<br /><br />**dolore magna aliqua</instruction>
</instructions>
基本上,这些 XML 文件在 PHP 中输出时需要包含不同的标记来格式化它们。上面的两个示例都将作为 $app->instructions->instruction 回显。
目前,我已经使用 CDATA 占位符实现了格式的变化,然后我 sprintf 并替换了这些占位符。但是,在我看来,这不够灵活,需要 sprintf 函数中的多个参数来替换可能是大量标记元素的内容。到目前为止,我最需要替换的是 6 个 CDATA 令牌。
由于我还必须根据正在加载的应用程序使 sprintf 成为有条件的,因此这一点更加复杂。更糟糕的是,我选择在控制器中执行此操作,以免不必要的 PHP 污染 HTML。
切入正题,我想实现以下目标:
- XML 没有 HTML 标记
- HTML 不使用 PHP,或者至少尽量减少使用 PHP
- 控制器内绝对没有 HTML
似乎我正在以我尝试的方式妥协其中之一。