Замена информации на HTML-странице с помощью PHP перед рендерингом

РЕДАКТИРОВАТЬ: после ввода этого я думаю, что этот подход не является стартовым. Все, что я пытаюсь сделать, это найти более простой способ ввода <?= и ?> на длинных HTML-страницах. Приветствуются любые идеи.
ПОЗЖЕ: Да, это это не стартовый проект, поэтому я дорабатываю свою IDE (замечательный PhpStorm), чтобы позаботиться об этом, и, вероятно, начните использовать Twig "в ближайшее время".

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

Я нахожу бесконечное печатание <?= => абсолютным кошмаром. Я почему-то никак не могу запомнить положение клавиш на клавиатуре и путаюсь в смещении/не смещении (мозг в возрасте 64 лет и/или слишком много марихуаны в молодости?) и каждый раз приходится их искать и делать такие вещи, как только что Я набрал + вместо =!

Я пока не хочу использовать полноценный механизм шаблонов, такой как Mustache, а просто хочу заменить <?= и => чем-то вроде {{{ }}}.

Для экспериментов я использую jjjj и kkk.

Чтобы попытаться сделать это, я поместил всю HTML-страницу в переменную HEREDOC с именем $mypage. В настоящее время есть только одна цель замены, но, очевидно, она зациклится, если я смогу заставить ее работать.

  $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 как текст на экране?

Кроме того, учитывая, что я обычно использую множество включений, будут ли они работать в этой стратегии echo/HEREDOC? Я подозреваю, что нет.

Благодарен за любые предложения.

PS Да, я знаю, что все это ужасный способ делать вещи, но это для альфы для БУКВАЛЬНО около 10 человек, так что я просто делаю быстро и грязно. (Честно говоря, это единственный способ, которым я программирую в эти дни!)


person BeNice    schedule 04.11.2019    source источник
comment
Конечно, это будет отображаться только потому, что здесь вы работаете с данными, а не с кодом. Если вы хотите, чтобы эти данные снова интерпретировались как код, вам пришлось бы отправить их через eval (что не рекомендуется — почитайте об этом, если не знаете почему).   -  person 04FS    schedule 04.11.2019
comment
Twig шаблонизатор.   -  person u_mulder    schedule 04.11.2019
comment
@u_mulder посмотрел на Twig, только что еще раз взглянул, может быть, это было бы в пределах моей досягаемости, но в настоящее время я не понимаю, как установить на удаленный сервер, но подозреваю, что это не так уж ужасно. Спасибо за напоминание   -  person BeNice    schedule 04.11.2019


Ответы (1)


Ваш (отредактированный) вопрос - это то, что обычно делает для вас ваша среда IDE или расширенный редактор. Из того, что я могу подобрать, похоже, вы используете PHPStorm. Для это. Есть несколько предопределенных для PHP, но я не думаю, что там есть то, что вам нужно.

Например, чтобы создать один, чтобы вставить весь <?= ?>

  • Введите <?=$END$ ?> в редакторе ($END$ позиционирует курсор)
  • Выделите текст выше
  • ctrl-shift-a / cmd-shift-a (в соответствии с вашей операционной системой)
  • Введите «сохранить как» во всплывающем окне и выберите «Сохранить как живой шаблон».
  • Введите подходящее сокращение, например «пирог» (встроенное выражение PHP)
  • При необходимости отредактируйте текст шаблона
  • Нажмите Применить

После этого вы можете ввести «круг», а затем клавишу табуляции в редакторе, чтобы вставить текст.

person redbirdo    schedule 04.11.2019
comment
Клянусь, я скоро забуду собственную печень! Я снова смотрю на Twig — может быть, сегодня вечером, но любимый PhpStorm снова приходит на помощь. .... ПАУЗА.... Мне неловко говорить, что у меня уже был Живой Шаблон (<< было моей выбранной аббревиатурой со строкой <?=$END$?>). Я все же предпочел бы простую замену для удобочитаемости, если ничего другого. PS У меня раньше не было "Сохранить как живой шаблон" - очень полезно. У меня есть последнее желание - чтобы шаблон был <?=$ ?> с экранированными $. но я не могу заставить это работать. - person BeNice; 04.11.2019
comment
См. intellij -support.jetbrains.com/hc/en-us/community/posts/ - person redbirdo; 04.11.2019