@KRHD

В чём проблема (file_get_contents)?

Есть такой код:
$info = file_get_contents("http://site.ru/check/check.php?domain=".$_SERVER['SERVER_NAME']);

Он выводит 1 либо 0
но функция
if($info == '0')
{
	exit('Лицензия не активна!');
}

почему-то не работает:(
из-за чего это может быть?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Здравая мысль от Алексей Уколов продублировать комментарий из обсуждения как полновесный ответ.

var_dump($info) автору отобразил string(4) "0"
Здесь особое внимание не на выводимый "0", а на цифру в скобках, которая говорит, что в этой строке 4 байта. Не один, как было бы в большинстве кодировок для строки "0".
Самое очевидное - в ответе сервера прилетает BOM-метка. Как раз 3 байта BOM, затем байт символа 0, вот и 4 байта в ответе. Но может быть что-то и другое - посмотрите hexdump'ом ответ сервера. (как вариант, запишите ответ в файл и посмотрите этот файл hexdump'ом).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
'SERVER_NAME'
Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.

У вас всегда в domain попадает имя вашего сайта же т.е.
http://site.ru/check/check.php?domain=yourdomain.ru

Я не очень понял логику вашего скрипта но мне кажется это не нормально
Ответ написан
Комментировать
mytmid
@mytmid
нормальные люди в тостере хлеб поджаривают :D
if( empty ($info) )
{
  exit('Лицензия не активна!');
}

php.net/manual/ru/function.empty.php#refsect1-func...
Ответ написан
Комментировать
Попробуй так:
$info = file_get_contents("http://site.ru/check/check.php?domain=".$_SERVER['SERVER_NAME']);
if(intval($info)==0){

}else{

}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы