Ответ
Для этого нужно получить имя из внешнего источника (например, HTTP-запроса) и безопасно вставить его в строку вывода.
Пример с GET-параметром и значением по умолчанию:
<?php
// Используем null-coalescing operator (??) для значения по умолчанию
$name = $_GET['name'] ?? 'World';
// Обязательно экранируем вывод для защиты от XSS-атак
echo 'Hello, ' . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . '!';
При обращении к скрипту как script.php?name=John будет выведено Hello, John!. Если параметр name не передан, выведется Hello, World!.
Важные аспекты безопасности и практики:
- Экранирование: Функция
htmlspecialchars()преобразует специальные HTML-символы в сущности, предотвращая внедрение нежелательного HTML/JS-кода (XSS). - Проверка ввода: Для более сложных сценариев стоит валидировать входные данные (например, проверить, что имя — это непустая строка допустимой длины).
- Источник данных: Для данных из формы используйте
$_POST['name']. В современных фреймворках (Laravel, Symfony) данные запроса следует получать через специальные объекты Request, которые обеспечивают дополнительную безопасность.