На php пишу:
$name = $row['first_name'];
$welcomeblock = file_get_contents('./blocks/profile/welcome.min', true);
require_once('./blocks/profile/profile.min');
Происходит так, что выводится profile.min, где такой код:
<div class="frame">
<?php
echo $welcomeblock;
?>
</div>
То есть читается php переменная, которая выводится через html. Здесь все в порядке. Дальше читается welcomeblock из файла welcome.min, а там:
<div id = "startpage">
Здравствуйте, <?php echo $name; ?>!<br>
Выберите пункт в меню
</div>
И вот на этом месте после здравствуйте ничего не выводится, хотя php получает не пустой name. Что можно сделать, чтобы имя все-таки выводилось? Все то же самое с любыми другими переменными, которые были получены таким образом: переменная из php в блок кода из php, который подгружается в общий код
Тут скорее всего дело в том что вы получаете СОДЕРЖИМОЕ welcome.min, которое, в отличии от profile.min, не включается в исполняемый скрипт, соответственно и не исполняется интерпретатором. Могу быть не точен, но насколько мне известно, когда вы подключаете файл при помощи require - он становится частью скрипта. То есть это то же самое что вставить в место строчки require_once('./blocks/profile/profile.min') содержимое этого файла, поэтому для файлов подключенных при помощи require_once происходит выполнение всех php инструкций. Решить данную проблему, как мне кажется, можно следующими способами:
1) В файле, содержимое которого вы получаете при помощи file_get_contents, вместо php инструкций использовать некие ключевые слова (например, {name}), означающие переменные, которые потом можно будет заменить на значения этих самых переменных при помощи функции str_replace.
$welcomeblock = str_replace(['{name}','{surname}'],[$name,$surname],$welcomeblock);
2) Подключать файл welcome.min при помощи того же require или include, но при этом использовать перед подключением ob_start(); чтобы при подключении файла все что будет отдано им, не выводилось но было возвращено как строка при помощи функции ob_get_clean();, которую следует вызвать после.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники