Делаю мониторинг игрового серва. Кусок скрипта (не мой), заберающий инфу через сокет таким образом: PHP: <?php $server="****"; //сдесь ip сервера $qw=chr(32); $fp = fsockopen ("udp://".$server,27016, $errno, $errstr); if (!$fp) { echo "ERROR: $errno - $errstr<br>\n"; } else { fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0"); stream_set_timeout($fp,6); $st=fread($fp,1); $r=socket_get_status($fp); $r=$r["unread_bytes"]; $st.=fread($fp,$r); ?> Нужные данные получает, но не так как хочу. На сервере: string(98) "����m127.0.0.1:27016�NoN-STOP Server�aim_aggro�cstrike�Counter-Strike�/dw��������������" 14 На локальном: string(117) "����m127.0.0.1:27016\0NoN-STOP Server\0aim_aggro\0cstrike\0Counter-Strike\0/dw\0\0\0\0\0\0\0\0\0\0\0\0\0\0" 48 Кодировка страницы утф. Размер строки разный и распарсить ее не выйдет при таком раскладе. Гдето настройки отличаются, не пойму где. Как свести к однообразию?
HTTP_ACCEPT_CHARSET windows-1251,utf-8;q=0.7,*;q=0.7 На локалке и на веб одинаково. Наверно не в этом дело, так как эта настройка одинакова, а результат другой.
Luge Ну так они не меняются вручную, на сколько понял. Но и одинаковы в значениях, что на хостинге, что на локалке. Есть еще какието мысли?
HTTP_ACCEPT_CHARSET говорит следующее: "Сервер, я могу принять от тебя данные в этой кодировке, а если ты не можешь мне отдать в ней, то дай вот в этой или в этой....".
Петр Ну, это все хорошо. Что с этим делать? Локальный неправильно работает (настроен), там настройки по дефолту денверовские. Просмотрел оба пхпинфо - что касается кодировок то больше различий нету. Можно конечно делать и тестить на хостинговом серве, но неудобно постоянно скидывать туда файл и обновлять
Петр Так те настройки пхп, которые устанавливаются при денвере, сильно отличаются от тех что на хостинге. Сам автор этого "джентльменского набора" предупреждал, что его нельзя использовать для доступа из вне, ибо "дырявый". ПОдумаю еще денек, если нет - буду ставить вручную пхп+мускул.
iliavlad Так то что могло влиять на кодировку - уже сменил. Не помогло. Да и версия пхп что на локалке - свежее, чем на хостинге (как ни странно). Хотя можно попробовать тупо одинаковые настройки сделать.
iliavlad Luge Снес то что денвер понаставлял, поставил по-человечески связку Апача, пхп и мускула. Теперь fsockopen выдает такой же длины строку, как и на хостинге. Проблема останется загадкой навеки)) Спасибо за ответы.
Всетаки, проблема-загадка вернулась) Поставил по мануалу http://php-myadmin.ru/learning/instrument-apache.html сборку - та же самая разница в длине строки. А если поставить Апач 2.0 (более старый чем по этому мануалу) - то отображает как нужно, но не охота оставлять устаревшее, тем более что по 2.2 все хорошо расписано по поводу настроек.