За последние 24 часа нас посетил 18641 программист и 1702 робота. Сейчас ищут 877 программистов ...

fsockopen и кодировка

Тема в разделе "Вопросы от блондинок", создана пользователем Апельсин, 5 май 2010.

  1. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Делаю мониторинг игрового серва. Кусок скрипта (не мой), заберающий инфу через сокет таким образом:
    PHP:
    1. <?php
    2. $server="****"; //сдесь ip сервера
    3. $qw=chr(32);
    4. $fp = fsockopen ("udp://".$server,27016, $errno, $errstr);
    5. if (!$fp) {
    6. echo "ERROR: $errno - $errstr<br>\n";
    7. } else {
    8. fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0");
    9. $st=fread($fp,1);
    10. $r=$r["unread_bytes"];
    11. $st.=fread($fp,$r);
    12. ?>
    Нужные данные получает, но не так как хочу.

    На сервере:
    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


    Кодировка страницы утф. Размер строки разный и распарсить ее не выйдет при таком раскладе. Гдето настройки отличаются, не пойму где. Как свести к однообразию?
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Accept-Charset ?
     
  3. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    HTTP_ACCEPT_CHARSET windows-1251,utf-8;q=0.7,*;q=0.7
    На локалке и на веб одинаково. Наверно не в этом дело, так как эта настройка одинакова, а результат другой.
     
  4. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Вот заметил - на хостинге есть _ENV["HTTP_ACCEPT_CHARSET"], на Денвере нету. Может от этого.
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Accept-Charset и HTTP_ACCEPT_CHARSET — это кодировка клиента, а не сервера
     
  6. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Luge
    Ну так они не меняются вручную, на сколько понял. Но и одинаковы в значениях, что на хостинге, что на локалке. Есть еще какието мысли?
     
  7. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    HTTP_ACCEPT_CHARSET говорит следующее: "Сервер, я могу принять от тебя данные в этой кодировке, а если ты не можешь мне отдать в ней, то дай вот в этой или в этой....".
     
  8. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Петр
    Ну, это все хорошо. Что с этим делать? Локальный неправильно работает (настроен), там настройки по дефолту денверовские. Просмотрел оба пхпинфо - что касается кодировок то больше различий нету. Можно конечно делать и тестить на хостинговом серве, но неудобно постоянно скидывать туда файл и обновлять :(
     
  9. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Причем тут вообще денвер?
    Нужен только php.
     
  10. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Петр
    Так те настройки пхп, которые устанавливаются при денвере, сильно отличаются от тех что на хостинге. Сам автор этого "джентльменского набора" предупреждал, что его нельзя использовать для доступа из вне, ибо "дырявый".
    ПОдумаю еще денек, если нет - буду ставить вручную пхп+мускул.
     
  11. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    а если настройки денвера сделать такими же как у хостера?
     
  12. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    iliavlad
    Так то что могло влиять на кодировку - уже сменил. Не помогло. Да и версия пхп что на локалке - свежее, чем на хостинге (как ни странно).
    Хотя можно попробовать тупо одинаковые настройки сделать.
     
  13. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    если так сделаешь и не пойдет, то будешь знать, что надо настраивать еще где-то)
     
  14. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    iliavlad
    Luge
    Снес то что денвер понаставлял, поставил по-человечески связку Апача, пхп и мускула.
    Теперь fsockopen выдает такой же длины строку, как и на хостинге. Проблема останется загадкой навеки))
    Спасибо за ответы.
     
  15. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Всетаки, проблема-загадка вернулась)
    Поставил по мануалу http://php-myadmin.ru/learning/instrument-apache.html сборку - та же самая разница в длине строки. А если поставить Апач 2.0 (более старый чем по этому мануалу) - то отображает как нужно, но не охота оставлять устаревшее, тем более что по 2.2 все хорошо расписано по поводу настроек.