[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Никак не хочет работать file_get_contents
Master812
В моём движке с помощью file_get_contents подключается его версия, которая записана в файле gs_engine/includes/version.txt в данный момент это 4.1, затем снова с помощью file_get_contents берётся данные о последней версии движка с сервера разработчика http://generalscript.ru/superblog/version/4.1.txt
где мы должны получить слово "последняя" или "устаревшая", но почему-то не получается. первый file_get_contents работает нормально, т.е. выдаёт 4.1, я проверял с помощью echo. А вот второй file_get_contents не получает никаких данные с сервера о том новая ли это версия или старая. В чём может быть причина?
Причём сломался этот механизм когда я перевёл движок с устаревшей кодировки windows-1251 на новую utf-8. Когда запускаю старую версию, то всё работает.


$version = file_get_contents('gs_engine/includes/version.txt'); // версия движка
$way_of_check_version = 'http://generalscript.ru/superblog/version/'.$version.'.txt';
$check_version = file_get_contents($way_of_check_version); // проверка новая ли версия
VeRTak
Цитата (Master812 @ 26.02.2018 - 01:56)
А вот второй file_get_contents не получает никаких данные с сервера


Серьезно? Что прям вообще не возвращает вам ничего file_get_contents, может быть false или ошибку, или что-то другое? Не верю что вообще ничего не возвращает.
Master812
Цитата (VeRTak @ 26.02.2018 - 02:15)
Цитата (Master812 @ 26.02.2018 - 01:56)
А вот второй file_get_contents не получает никаких данные с сервера


Серьезно? Что прям вообще не возвращает вам ничего file_get_contents, может быть false или ошибку, или что-то другое? Не верю что вообще ничего не возвращает.

VeRTak, серьёзно ничего! После смены кодировки на utf-8 и перехода с PHP 5.3 на PHP 7 она перестала выводить данные.
AllesKlar
$version = '4.1';
$way_of_check_version = 'http://generalscript.ru/superblog/version/'.$version.'.txt';
$check_version = file_get_contents($way_of_check_version);
header('Content-Type: text/html; charset=ISO-8859');
echo $check_version;
user posted image

_____________
[продано копирайтерам]
walerus
Цитата
$version = file_get_contents('gs_engine/includes/version.txt'); // версия движка

Здесь точно 4.1 ? или может пробелы какие или символы может лишние...
Master812
Цитата (AllesKlar @ 26.02.2018 - 02:49)
$version = '4.1';
$way_of_check_version = 'http://generalscript.ru/superblog/version/'.$version.'.txt';
$check_version = file_get_contents($way_of_check_version);
header('Content-Type: text/html; charset=ISO-8859');
echo $check_version;
user posted image

AllesKlar, так-то работает, конечно. Но вот версию нужно получать из файла. Там записано 4.1 без всяких посторонних знаков, но, если взять это значение из файла, то работать перестаёт. В чём проблема - не могу понять.
VeRTak
Master812


$version = file_get_contents('gs_engine/includes/version.txt'); // версия движка
$way_of_check_version = 'http://generalscript.ru/superblog/version/'.$version.'.txt';
$check_version = file_get_contents($way_of_check_version); // проверка новая ли версия
var_dump($version);
var_dump($check_version);


Результат какой?
walerus
Master812
Выложи куда нибудь свой файл 'gs_engine/includes/version.txt'... посмотрим что там за зверь
Master812
Цитата (VeRTak @ 26.02.2018 - 04:58)
Master812


$version = file_get_contents('gs_engine/includes/version.txt'); // версия движка
$way_of_check_version = 'http://generalscript.ru/superblog/version/'.$version.'.txt';
$check_version = file_get_contents($way_of_check_version); // проверка новая ли версия
var_dump($version);
var_dump($check_version);


Результат какой?

VeRTak, выдаёт вот что: string(6) "4.1" bool(false)

Цитата
Выложи куда нибудь свой файл 'gs_engine/includes/version.txt'... посмотрим что там за зверь

walerus, вот он.
VeRTak
Master812

Ну вот false возвращает, а говорил что ничего ;)

http://php.net/manual/ru/function.file-get-contents.php

string(6) - хм.


$version = iconv("UTF-8", "ISO-8859-1//IGNORE", file_get_contents('http://generalscript.ru/test_php7_utf8/gs_engine/includes/version.txt')); // версия движка

$way_of_check_version = 'http://generalscript.ru/superblog/version/'.$version.'.txt';
$check_version = file_get_contents($way_of_check_version); // проверка новая ли версия
twin
Ну очевидно же, что это BOM. Файл поди блокнотом делал?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
VeRTak
twin

Ну да проблема именно в кодировки самого файла smile.gif
walerus
laugh.gif
Сслылка на нормальный файл - тыц
Master812
Цитата (VeRTak @ 27.02.2018 - 09:33)
Master812

Ну вот false возвращает, а говорил что ничего ;)

http://php.net/manual/ru/function.file-get-contents.php

string(6) - хм.


$version = iconv("UTF-8", "ISO-8859-1//IGNORE", file_get_contents('http://generalscript.ru/test_php7_utf8/gs_engine/includes/version.txt')); // версия движка

$way_of_check_version = 'http://generalscript.ru/superblog/version/'.$version.'.txt';
$check_version = file_get_contents($way_of_check_version); // проверка новая ли версия

VeRTak, вот теперь работает! Большое спасибо! wink.gif А я ведь догадывался, что проблема может быть в кодировке, но я в файле version.txt писал 4.1 английскими буквами и думал, что прокатит, т.к. инглишь во всех кодировках нормально отображается. Значит я ошибался.

Цитата
Ну очевидно же, что это BOM. Файл поди блокнотом делал?


twin, да, в блокнотике делал. Теперь буду делать в Notepad++ и там переводить в UTF-8.
twin
Причем тут кодировка вообще... Цифры одинаковы в любой кодировке. Дело в маркировке файла. Нужно просто убрать BOM и не мудрить. Убирать его флагом IGNORE, это так же, как заткнуть уши ватой, чтобы не слышать матерков (которые так и просятся biggrin.gif )

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.