在呈现之前使用 PHP 替换 HTML 页面中的信息

Replacing info in HTML page using PHP before rendering

编辑:输入后我认为这种方法行不通。我想要做的就是找到一种更简单的方法来在较长的 HTML 页面中键入 <?=?>。非常感谢任何想法。
稍后: 是的,这个 一个非启动器所以我正在调整我的 IDE (很棒的 PhpStorm)来处理这个和可能会开始使用 Twig "soon".

================================

我发现没完没了地输入 <?= => 绝对是一场噩梦。出于某种原因,我真的不记得键盘上按键的位置并且在 shift/nonshift 上感到困惑(64 岁的大脑 and/or 我年轻时吃过太多大麻?)并且每次都必须搜索它们并做就像刚才我输入了 + 而不是 =

我还不想使用像 Mustache 这样的全功能模板引擎,只是想用 {{{ [=21= 之类的东西替换 <?==> ].

为了实验,我使用了 jjjjkkk

为了尝试这样做,我将整个 HTML 页面放入一个名为 $mypage 的 HEREDOC 变量中。目前只有一个替代目标,但如果我能让它工作,这显然会进入循环。

  $start = strpos($myPage, "jjjj");
  $end = strpos($myPage, "kkk");

  substr_replace($myPage,"<?=$",$start,4);
  substr_replace($myPage,"?> ",$end, 3);

  $insName = "Boo";


  echo $myPage;

在 HTML 我有:

<label for="clientFirstName">First name* jjjjinsNamekkk</label>

echo 工作正常并正确显示页面,但 替换字符串。更糟糕的是,我想我可能完全错了。

如果我将正文中的 jjjj 替换为 <?=$,那会被解释为还是只是 echoed 作为屏幕上的文本?

此外,考虑到我倾向于使用 includes 相当多的内容,它们会在这个 echo/HEREDOC 策略中起作用吗?我怀疑不是。

感谢您提出任何建议。

PS 是的,我知道这是一种糟糕的做事方式,但这是针对字面上大约 10 人的 alpha,所以我只是快速而肮脏地做事。 (老实说,这是我最近编程的唯一方式!)

您的(编辑过的)问题是您的 IDE 或增强型编辑器通常会为您做的事情。据我所知,您似乎使用了 PHPStorm。您可以为此使用 Live Template。 PHP 有一些预定义的,但我不认为你想要的是那里。

例如,创建一个插入整个<?= ?>

  • 在编辑器中输入 <?=$END$ ?>($END$ 定位光标)
  • 突出显示上面的文字
  • ctrl-shift-a / cmd-shift-a(适合您的操作系统)
  • 在弹出窗口中输入 'save as' 然后 select 'Save as Live Template'
  • 输入合适的缩写,例如'pie'(PHP 内联表达式)
  • 必要时编辑模板文本
  • 点击应用

此后您可以在编辑器中键入 'pie',然后按 Tab 键以插入文本。