This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "quickfw".
The branch, master has been updated
via 30bfa601db7e5336cebe06697ea09088627a0955 (commit)
via 83f1678697ceae67d90661631f520caa7c8345cf (commit)
via 84ae3263766a973db0822cf8999b796048502ce2 (commit)
via 8226d71b29036f46afaa7c5ac40126b66d7c1175 (commit)
from e7fcdf652063fa53fa4407e9acaf9b65c4ccb8d7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 30bfa601db7e5336cebe06697ea09088627a0955
Author: Ivan1986 <iva...@li...>
Date: Tue Apr 6 15:33:37 2010 +0400
Расстановка private
diff --git a/lib/JsHttpRequest.php b/lib/JsHttpRequest.php
index 3c0f263..063cb8c 100644
--- a/lib/JsHttpRequest.php
+++ b/lib/JsHttpRequest.php
@@ -26,26 +26,26 @@ class JsHttpRequest
var $RESULT = null;
// Internal; uniq value.
- var $_uniqHash;
+ private $_uniqHash;
// Magic number for display_error checking.
- var $_magic = 14623;
+ private $_magic = 14623;
// Previous display_errors value.
- var $_prevDisplayErrors = null;
+ private $_prevDisplayErrors = null;
// Internal: response content-type depending on loader type.
- var $_contentTypes = array(
+ private $_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
);
// Internal: conversion to UTF-8 JSON cancelled because of non-ascii key.
- var $_toUtfFailed = false;
+ private $_toUtfFailed = false;
// Internal: list of characters 128...255 (for strpbrk() ASCII check).
- var $_nonAsciiChars = '';
+ private $_nonAsciiChars = '';
// Which Unicode conversion function is available?
- var $_unicodeConvMethod = null;
+ private $_unicodeConvMethod = null;
// Emergency memory buffer to be freed on memory_limit error.
- var $_emergBuffer = null;
+ private $_emergBuffer = null;
/**
@@ -128,7 +128,7 @@ class JsHttpRequest
*
* @return boolean True if the library is active, false otherwise.
*/
- function isActive()
+ static function isActive()
{
return !empty($GLOBALS['JsHttpRequest_Active']);
}
@@ -144,7 +144,7 @@ class JsHttpRequest
*/
function setEncoding($enc)
{
- $this->SCRIPT_ENCODING = strtolower($enc);
+ $this->SCRIPT_ENCODING = strtolower($enc);
$this->_correctSuperglobals();
}
@@ -157,7 +157,7 @@ class JsHttpRequest
* @param mixed $a Any structure to convert to JS.
* @return string JavaScript equivalent structure.
*/
- function php2js($a=false)
+ private function php2js($a=false)
{
if (is_null($a)) return 'null';
if ($a === false) return 'false';
@@ -207,7 +207,7 @@ class JsHttpRequest
/**
* Parse & decode QUERY_STRING.
*/
- function _correctSuperglobals()
+ private function _correctSuperglobals()
{
// In case of FORM loader we may go to nirvana, everything is already parsed by PHP.
if ($this->LOADER == 'form') return;
@@ -364,7 +364,7 @@ class JsHttpRequest
* Decode all %uXXXX entities in string or array (recurrent).
* String must not contain %XX entities - they are ignored!
*/
- function _ucs2EntitiesDecode($data)
+ private function _ucs2EntitiesDecode($data)
{
if (is_array($data)) {
$d = array();
@@ -388,7 +388,7 @@ class JsHttpRequest
*
* @see iconv()
*/
- function _unicodeConv($fromEnc, $toEnc, $v)
+ private function _unicodeConv($fromEnc, $toEnc, $v)
{
if ($this->_unicodeConvMethod == 'iconv')
return iconv($fromEnc, $toEnc, $v);
commit 83f1678697ceae67d90661631f520caa7c8345cf
Author: Ivan1986 <iva...@li...>
Date: Tue Apr 6 15:27:56 2010 +0400
Более быстрая раскодировка из JS - используется json_decode
diff --git a/lib/JsHttpRequest.php b/lib/JsHttpRequest.php
index 690292a..3c0f263 100644
--- a/lib/JsHttpRequest.php
+++ b/lib/JsHttpRequest.php
@@ -21,7 +21,6 @@
class JsHttpRequest
{
var $SCRIPT_ENCODING = "utf-8";
- var $SCRIPT_DECODE_MODE = '';
var $LOADER = null;
var $ID = null;
var $RESULT = null;
@@ -142,17 +141,10 @@ class JsHttpRequest
* Examples:
* "windows-1251" - set plain encoding (non-windows characters,
* e.g. hieroglyphs, are totally ignored)
- * "windows-1251 entities" - set windows encoding, BUT additionally replace:
- * "&" -> "&"
- * hieroglyph -> &#XXXX; entity
*/
function setEncoding($enc)
{
- // Parse an encoding.
- preg_match('/^(\S*)(?:\s+(\S*))$/', $enc, $p);
- $this->SCRIPT_ENCODING = strtolower(!empty($p[1])? $p[1] : $enc);
- $this->SCRIPT_DECODE_MODE = !empty($p[2])? $p[2] : '';
- // Manually parse QUERY_STRING because of damned Unicode's %uXXXX.
+ $this->SCRIPT_ENCODING = strtolower($enc);
$this->_correctSuperglobals();
}
@@ -382,7 +374,8 @@ class JsHttpRequest
return $d;
} else {
if (strpos($data, '%u') !== false) { // improve speed
- $data = preg_replace_callback('/%u([0-9A-F]{1,4})/si', array(&$this, '_ucs2EntitiesDecodeCallback'), $data);
+ $data = json_decode(str_replace('%', '\\', sprintf('"%s"',addslashes($data))));
+ $data = $this->_unicodeConv('UTF-8', $this->SCRIPT_ENCODING, $data);
}
return $data;
}
@@ -390,30 +383,6 @@ class JsHttpRequest
/**
- * Decode one %uXXXX entity (RE callback).
- */
- function _ucs2EntitiesDecodeCallback($p)
- {
- $hex = $p[1];
- $dec = hexdec($hex);
- if ($dec === "38" && $this->SCRIPT_DECODE_MODE == 'entities') {
- // Process "&" separately in "entities" decode mode.
- $c = "&";
- } else {
- $c = @$this->_unicodeConv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec));
- if (!strlen($c)) {
- if ($this->SCRIPT_DECODE_MODE == 'entities') {
- $c = '&#' . $dec . ';';
- } else {
- $c = '?';
- }
- }
- }
- return $c;
- }
-
-
- /**
* Wrapper for iconv() or mb_convert_encoding() functions.
* This function will generate fatal error if none of these functons available!
*
commit 84ae3263766a973db0822cf8999b796048502ce2
Author: Ivan1986 <iva...@li...>
Date: Tue Apr 6 13:14:13 2010 +0400
Удалены две никак не используемые функции
diff --git a/lib/JsHttpRequest.php b/lib/JsHttpRequest.php
index 72fc837..690292a 100644
--- a/lib/JsHttpRequest.php
+++ b/lib/JsHttpRequest.php
@@ -136,17 +136,6 @@ class JsHttpRequest
/**
- * string getJsCode()
- *
- * Return JavaScript part of the library.
- */
- function getJsCode()
- {
- return file_get_contents(dirname(__FILE__) . '/JsHttpRequest.js');
- }
-
-
- /**
* void setEncoding(string $encoding)
*
* Set an active script encoding & correct QUERY_STRING according to it.
@@ -169,26 +158,6 @@ class JsHttpRequest
/**
- * 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.
- */
- function quoteInput($s)
- {
- if ($this->SCRIPT_DECODE_MODE == 'entities')
- return str_replace(array('"', '<', '>'), array('"', '<', '>'), $s);
- else
- return htmlspecialchars($s);
- }
-
-
- /**
* 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.
commit 8226d71b29036f46afaa7c5ac40126b66d7c1175
Author: Ivan1986 <iva...@li...>
Date: Mon Apr 5 19:34:18 2010 +0400
Удалил перекодировку без mb_sting или iconv
diff --git a/lib/JsHttpRequest.php b/lib/JsHttpRequest.php
index debaf18..72fc837 100644
--- a/lib/JsHttpRequest.php
+++ b/lib/JsHttpRequest.php
@@ -80,7 +80,8 @@ class JsHttpRequest
$_REQUEST['JsHttpRequest']
);
// Detect Unicode conversion method.
- $this->_unicodeConvMethod = function_exists('mb_convert_encoding')? 'mb' : (function_exists('iconv')? 'iconv' : null);
+ $this->_unicodeConvMethod = function_exists('mb_convert_encoding')? 'mb' : (function_exists('iconv')? 'iconv' :
+ trigger_error('Install mb_string or iconv', E_USER_ERROR));
// Fill an emergency buffer. We erase it at the first line of OB processor
// to free some memory. This memory may be used on memory_limit error.
@@ -329,7 +330,7 @@ class JsHttpRequest
$text = null; // to be on a safe side
// Try to use very fast json_encode: 3-4 times faster than a manual encoding.
- if (function_exists('array_walk_recursive') && function_exists('json_encode') && $this->_unicodeConvMethod) {
+ if (function_exists('array_walk_recursive') && function_exists('json_encode')) {
$this->_nonAsciiChars = join("", array_map('chr', range(128, 255)));
$this->_toUtfFailed = false;
$resultUtf8 = $result;
@@ -430,11 +431,7 @@ class JsHttpRequest
// Process "&" separately in "entities" decode mode.
$c = "&";
} else {
- if ($this->_unicodeConvMethod) {
- $c = @$this->_unicodeConv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec));
- } else {
- $c = $this->_decUcs2Decode($dec, $this->SCRIPT_ENCODING);
- }
+ $c = @$this->_unicodeConv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec));
if (!strlen($c)) {
if ($this->SCRIPT_DECODE_MODE == 'entities') {
$c = '&#' . $dec . ';';
@@ -455,92 +452,11 @@ class JsHttpRequest
*/
function _unicodeConv($fromEnc, $toEnc, $v)
{
- if ($this->_unicodeConvMethod == 'iconv') {
+ if ($this->_unicodeConvMethod == 'iconv')
return iconv($fromEnc, $toEnc, $v);
- }
return mb_convert_encoding($v, $toEnc, $fromEnc);
}
-
- /**
- * If there is no ICONV, try to decode 1-byte characters and UTF-8 manually
- * (for most popular charsets only).
- */
-
- /**
- * @todo Проверить функцию
- * Необходимость этой функции под большим вопросом,
- * Похоже вызывается из мертвой ветки, так как фреймворк
- * подразумевает использование mb_convert_encoding
- *
- * Convert from UCS-2BE decimal to $toEnc.
- */
- function _decUcs2Decode($code, $toEnc)
- {
- // Little speedup by using array_flip($this->_encTables) and later hash access.
- static $flippedTable = null;
- if ($code < 128) return chr($code);
-
- if (isset($this->_encTables[$toEnc])) {
- if (!$flippedTable) $flippedTable = array_flip($this->_encTables[$toEnc]);
- if (isset($flippedTable[$code])) return chr(128 + $flippedTable[$code]);
- } else if ($toEnc == 'utf-8' || $toEnc == 'utf8') {
- // UTF-8 conversion rules: http://www.cl.cam.ac.uk/~mgk25/unicode.html
- if ($code < 0x800) {
- return chr(0xC0 + ($code >> 6)) .
- chr(0x80 + ($code & 0x3F));
- } else { // if ($code <= 0xFFFF) -- it is almost always so for UCS2-BE
- return chr(0xE0 + ($code >> 12)) .
- chr(0x80 + (0x3F & ($code >> 6))) .
- chr(0x80 + ($code & 0x3F));
- }
- }
-
- return "";
- }
-
-
- /**
- * UCS-2BE -> 1-byte encodings (from #128).
- */
- var $_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
- ),
- );
}
?>
-----------------------------------------------------------------------
Summary of changes:
lib/JsHttpRequest.php | 186 +++++-------------------------------------------
1 files changed, 20 insertions(+), 166 deletions(-)
hooks/post-receive
--
quickfw
|