sorry_i_noob
@sorry_i_noob

Как получить URL сайта, если скрипт запущен через CLI?

Здравствуйте. Я нашел на stackoverflow функцию для получения URL сайта. Вот она:
function get_site_url() {
	if (isset($_SERVER['HTTPS']) &&
		($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
		isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
		$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
		$protocol = 'https://';
	} else {
		$protocol = 'http://';
	}
	$domainName = $_SERVER['HTTP_HOST'];
	return $protocol . $domainName;
}

Я пользовался ей, все было прекрасно, пока не попробовал отправить почту через Cron. Я попробовал и мне выдается NOTICE:
Notice: Undefined index: HTTP_HOST
С SERVER_NAME то же самое.
Как мне получить URL сайта, если скрипт запущен через CLI?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
Никак.
На одном сервере можно запустить десятки или сотни сайтов. Какой из адресов вы ожидаете увидеть запуская через CLI?
Ответ написан
riky
@riky
Laravel
никак. дело еще и в том что на один скрипт можно привязать тысячи доменов, по которым он будет срабатывать, в момент запроса HTTP_HOST будет показывать тот по которому юзер запустил скрипт, но при запуске с разных доменов он будет разный.
единственный вариант - прописывать хост который тебе надо где то в конфиге.
Ответ написан
Комментировать
@LemonFox
stateless mind
1. Хранить в конфиге как писали выше
2. Передавать в качестве аргументов к cli-скрипту
php.net/manual/ru/reserved.variables.argv.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы