Class JsHttpRequest

[Строка 21]

Размещен: /Kernel/ajax/JsHttpRequest.php

Описание

JsHttpRequest: PHP backend for JavaScript DHTML loader.

(C) Dmitry Koterov, http://en.dklab.ru

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. See http://www.gnu.org/copyleft/lesser.html

Do not remove this comment if you want to use the script! Не удаляйте данный комментарий, если вы хотите использовать скрипт!

This backend library also supports POST requests additionally to GET.

author

Dmitry Koterov

version

5.x $Id$


Свойства класса

  • $ID =  null
  • $LOADER =  null
  • $SCRIPT_DECODE_MODE =  ''
  • $SCRIPT_ENCODING =  "UTF-8"
  • $_contentTypes = array(
       "script" => "text/javascript",
       "xml"    => "text/plain", // In XMLHttpRequest mode we must return text/plain - stupid Opera 8.0. :(
       "form"   => "text/html",
       ""       => "text/plain", // for unknown loader
       )

  • $_emergBuffer =  null
  • $_encTables = array(
       'windows-1251' => array(
       0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
       0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
       0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
       0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
       0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
       0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
       0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
       0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
       0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
       0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
       0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
       0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
       0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
       0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
       0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
       0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
       ),'koi8-r'=>array(0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255d,0x255E,0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9,0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043d,0x043E,0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,0x044C,0x044B,0x0437,0x0448,0x044d,0x0449,0x0447,0x044A,0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041d,0x041E,0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,0x042C,0x042B,0x0417,0x0428,0x042d,0x0429,0x0427,0x042A),)

    UCS-2BE -> 1-byte encodings (from #128).
  • $_magic =  14623
  • $_nonAsciiChars =  ''
  • $_prevDisplayErrors =  null
  • $_toUtfFailed =  false
  • $_unicodeConvMethod =  null
  • $_uniqHash =

Константы класса


Унаследованные константы класса


Унаследованные свойства класса


Методы

Унаследованные методы


Описания методов

    JsHttpRequest::JsHttpRequest

    JsHttpRequest( $enc );

    Описание

    Constructor.

    Create new JsHttpRequest backend object and attach it to script output buffer. As a result - script will always return correct JavaScript code, even in case of fatal errors.

    QUERY_STRING is in form of: PHPSESSID=<sid>&a=aaa&b=bbb&JsHttpRequest=<id>-<loader> WHERE <id> is a request ID, <loader> is a loader name, <sid> - a session ID (if present), PHPSESSID - session parameter name (by default = "PHPSESSID").

    If an object is created WITHOUT an active AJAX query, it is simply marked as non-active. Use statuc method isActive() to check.

    Принимаемые параметры

    $enc

    [ Наверх ]


    JsHttpRequest::getJsCode

    getJsCode( );

    Описание

    string getJsCode()

    Return JavaScript part of the library.

    [ Наверх ]


    JsHttpRequest::isActive

    isActive( );

    Описание

    Static function.

    Returns true if JsHttpRequest output processor is currently active.

    Возвращает

    True if the library is active, false otherwise.

    [ Наверх ]


    JsHttpRequest::php2js

    php2js( [mixed $a = false] );

    Описание

    Convert a PHP scalar, array or hash to JS scalar/array/hash. This function is an analog of json_encode(), but it can work with a non-UTF8 input and does not analyze the passed data. Output format must be fully JSON compatible.

    Принимаемые параметры

    $a

    Any structure to convert to JS.

    Возвращает

    JavaScript equivalent structure.

    [ Наверх ]


    JsHttpRequest::quoteInput

    quoteInput( $s );

    Описание

    string quoteInput(string $input)

    Quote a string according to the input decoding mode. If entities are used (see setEncoding()), no '&' character is quoted, only '"', '>' and '<' (we presume that '&' is already quoted by an input reader function).

    Use this function INSTEAD of htmlspecialchars() for $_GET data in your scripts.

    Принимаемые параметры

    $s

    [ Наверх ]


    JsHttpRequest::setEncoding

    setEncoding( $enc );

    Описание

    void setEncoding(string $encoding)

    Set an active script encoding & correct QUERY_STRING according to it. Examples: "windows-1251" - set plain encoding (non-windows characters, e.g. hieroglyphs, are totally ignored) "windows-1251 entities" - set windows encoding, BUT additionally replace: "&" -> "&amp;" hieroglyph -> &#XXXX; entity

    Принимаемые параметры

    $enc

    [ Наверх ]


    JsHttpRequest::_correctSuperglobals

    _correctSuperglobals( );

    Описание

    Parse & decode QUERY_STRING.

    [ Наверх ]


    JsHttpRequest::_decUcs2Decode

    _decUcs2Decode( $code, $toEnc );

    Описание

    Convert FROM UCS-2BE decimal to $toEnc.

    Принимаемые параметры

    $code

    $toEnc

    [ Наверх ]


    JsHttpRequest::_obHandler

    _obHandler( $text );

    Описание

    Called in case of error too!

    Принимаемые параметры

    $text

    [ Наверх ]


    JsHttpRequest::_toUtf8_callback

    _toUtf8_callback( &$v, $k, $fromEnc );

    Описание

    Internal function, used in array_walk_recursive() before json_encode() call.

    If a key contains non-ASCII characters, this function sets $this->_toUtfFailed = true, becaues array_walk_recursive() cannot modify array keys.

    Принимаемые параметры

    &$v

    $k

    $fromEnc

    [ Наверх ]


    JsHttpRequest::_ucs2EntitiesDecode

    _ucs2EntitiesDecode( $data );

    Описание

    Decode all %uXXXX entities in string or array (recurrent).

    String must not contain %XX entities - they are ignored!

    Принимаемые параметры

    $data

    [ Наверх ]


    JsHttpRequest::_ucs2EntitiesDecodeCallback

    _ucs2EntitiesDecodeCallback( $p );

    Описание

    Decode one %uXXXX entity (RE callback).

    Принимаемые параметры

    $p

    [ Наверх ]


    JsHttpRequest::_unicodeConv

    _unicodeConv( $fromEnc, $toEnc, $v );

    Описание

    Wrapper for iconv() or mb_convert_encoding() functions.

    This function will generate fatal error if none of these functons available!

    Принимаемые параметры

    $fromEnc

    $toEnc

    $v

    see

    iconv()

    [ Наверх ]



Описания переменных

  • $ID =  null [Строка 26]
  • Data type: mixed

  • $LOADER =  null [Строка 25]
  • Data type: mixed

  • $SCRIPT_DECODE_MODE =  '' [Строка 24]
  • Data type: mixed

  • $SCRIPT_ENCODING =  "UTF-8" [Строка 23]
  • Data type: mixed

  • $_contentTypes = array(
       "script" => "text/javascript",
       "xml"    => "text/plain", // In XMLHttpRequest mode we must return text/plain - stupid Opera 8.0. :(
       "form"   => "text/html",
       ""       => "text/plain", // for unknown loader
       )
    [Строка 35]
  • Data type: mixed

  • $_emergBuffer =  null [Строка 48]
  • Data type: mixed

  • $_encTables = array(
       'windows-1251' => array(
       0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
       0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
       0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
       0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
       0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
       0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
       0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
       0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
       0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
       0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
       0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
       0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
       0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
       0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
       0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
       0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
       ),'koi8-r'=>array(0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255d,0x255E,0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9,0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043d,0x043E,0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,0x044C,0x044B,0x0437,0x0448,0x044d,0x0449,0x0447,0x044A,0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041d,0x041E,0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,0x042C,0x042B,0x0417,0x0428,0x042d,0x0429,0x0427,0x042A),)
    [Строка 473]
  • Data type: mixed
  • Описание

    UCS-2BE -> 1-byte encodings (from #128).


  • $_magic =  14623 [Строка 31]
  • Data type: mixed

  • $_nonAsciiChars =  '' [Строка 44]
  • Data type: mixed

  • $_prevDisplayErrors =  null [Строка 33]
  • Data type: mixed

  • $_toUtfFailed =  false [Строка 42]
  • Data type: mixed

  • $_unicodeConvMethod =  null [Строка 46]
  • Data type: mixed

  • $_uniqHash = [Строка 29]
  • Data type: mixed


Описание констант класса