亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? json.class.php

?? STCMS 音樂系統 v2.5 build 090501: 為達到最佳效果
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * Converts to and from JSON format.
 *
 * JSON (JavaScript Object Notation) is a lightweight data-interchange
 * format. It is easy for humans to read and write. It is easy for machines
 * to parse and generate. It is based on a subset of the JavaScript
 * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
 * This feature can also be found in  Python. JSON is a text format that is
 * completely language independent but uses conventions that are familiar
 * to programmers of the C-family of languages, including C, C++, C#, Java,
 * JavaScript, Perl, TCL, and many others. These properties make JSON an
 * ideal data-interchange language.
 *
 * This package provides a simple encoder and decoder for JSON notation. It
 * is intended for use with client-side Javascript applications that make
 * use of HTTPRequest to perform server communication functions - data can
 * be encoded into JSON notation for use in a client-side javascript, or
 * decoded from incoming Javascript requests. JSON format is native to
 * Javascript, and can be directly eval()'ed with no further parsing
 * overhead
 *
 * All strings should be in ASCII or UTF-8 format!
 *
 * LICENSE: Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met: Redistributions of source code must retain the
 * above copyright notice, this list of conditions and the following
 * disclaimer. Redistributions in binary form must reproduce the above
 * copyright notice, this list of conditions and the following disclaimer
 * in the documentation and/or other materials provided with the
 * distribution.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
 * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 * DAMAGE.
 *
 * @category
 * @package     Services_JSON
 * @author      Michal Migurski <mike-json@teczno.com>
 * @author      Matt Knapp <mdknapp[at]gmail[dot]com>
 * @author      Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
 * @copyright   2005 Michal Migurski
 * @version     CVS: $Id: JSON.php 1032 2008-02-22 06:20:48Z qeeyuan $
 * @license     http://www.opensource.org/licenses/bsd-license.php
 * @link        http://pear.php.net/pepr/pepr-proposal-show.php?id=198
 */

/**
 * Marker constant for Services_JSON::decode(), used to flag stack state
 */
define('SERVICES_JSON_SLICE',   1);

/**
 * Marker constant for Services_JSON::decode(), used to flag stack state
 */
define('SERVICES_JSON_IN_STR',  2);

/**
 * Marker constant for Services_JSON::decode(), used to flag stack state
 */
define('SERVICES_JSON_IN_ARR',  3);

/**
 * Marker constant for Services_JSON::decode(), used to flag stack state
 */
define('SERVICES_JSON_IN_OBJ',  4);

/**
 * Marker constant for Services_JSON::decode(), used to flag stack state
 */
define('SERVICES_JSON_IN_CMT', 5);

/**
 * Behavior switch for Services_JSON::decode()
 */
define('SERVICES_JSON_LOOSE_TYPE', 16);

/**
 * Behavior switch for Services_JSON::decode()
 */
define('SERVICES_JSON_SUPPRESS_ERRORS', 32);

/**
 * Converts to and from JSON format.
 *
 * Brief example of use:
 *
 * <code>
 * // create a new instance of Services_JSON
 * $json = new Services_JSON();
 *
 * // convert a complexe value to JSON notation, and send it to the browser
 * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));
 * $output = $json->encode($value);
 *
 * print($output);
 * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
 *
 * // accept incoming POST data, assumed to be in JSON notation
 * $input = file_get_contents('php://input', 1000000);
 * $value = $json->decode($input);
 * </code>
 */
class json
{
   /**
	* constructs a new JSON instance
	*
	* @param    int     $use    object behavior flags; combine with boolean-OR
	*
	*                           possible values:
	*                           - SERVICES_JSON_LOOSE_TYPE:  loose typing.
	*                                   "{...}" syntax creates associative arrays
	*                                   instead of objects in decode().
	*                           - SERVICES_JSON_SUPPRESS_ERRORS:  error suppression.
	*                                   Values which can't be encoded (e.g. resources)
	*                                   appear as NULL instead of throwing errors.
	*                                   By default, a deeply-nested resource will
	*                                   bubble up with an error, so all return values
	*                                   from encode() should be checked with isError()
	*/
	function json($use = 0)
	{
		$this->use = $use;
	}

   /**
	* convert a string from one UTF-16 char to one UTF-8 char
	*
	* Normally should be handled by mb_convert_encoding, but
	* provides a slower PHP-only method for installations
	* that lack the multibye string extension.
	*
	* @param    string  $utf16  UTF-16 character
	* @return   string  UTF-8 character
	* @access   private
	*/
	function utf162utf8($utf16)
	{
		// oh please oh please oh please oh please oh please
		if(function_exists('mb_convert_encoding')) {
			return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
		}

		$bytes = (ord($utf16{0}) << 8) | ord($utf16{1});

		switch(true) {
			case ((0x7F & $bytes) == $bytes):
				// this case should never be reached, because we are in ASCII range
				// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
				return chr(0x7F & $bytes);

			case (0x07FF & $bytes) == $bytes:
				// return a 2-byte UTF-8 character
				// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
				return chr(0xC0 | (($bytes >> 6) & 0x1F))
					 . chr(0x80 | ($bytes & 0x3F));

			case (0xFFFF & $bytes) == $bytes:
				// return a 3-byte UTF-8 character
				// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
				return chr(0xE0 | (($bytes >> 12) & 0x0F))
					 . chr(0x80 | (($bytes >> 6) & 0x3F))
					 . chr(0x80 | ($bytes & 0x3F));
		}

		// ignoring UTF-32 for now, sorry
		return '';
	}

   /**
	* convert a string from one UTF-8 char to one UTF-16 char
	*
	* Normally should be handled by mb_convert_encoding, but
	* provides a slower PHP-only method for installations
	* that lack the multibye string extension.
	*
	* @param    string  $utf8   UTF-8 character
	* @return   string  UTF-16 character
	* @access   private
	*/
	function utf82utf16($utf8)
	{
		// oh please oh please oh please oh please oh please
		if(function_exists('mb_convert_encoding')) {
			return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
		}

		switch(strlen($utf8)) {
			case 1:
				// this case should never be reached, because we are in ASCII range
				// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
				return $utf8;

			case 2:
				// return a UTF-16 character from a 2-byte UTF-8 char
				// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
				return chr(0x07 & (ord($utf8{0}) >> 2))
					 . chr((0xC0 & (ord($utf8{0}) << 6))
						 | (0x3F & ord($utf8{1})));

			case 3:
				// return a UTF-16 character from a 3-byte UTF-8 char
				// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
				return chr((0xF0 & (ord($utf8{0}) << 4))
						 | (0x0F & (ord($utf8{1}) >> 2)))
					 . chr((0xC0 & (ord($utf8{1}) << 6))
						 | (0x7F & ord($utf8{2})));
		}

		// ignoring UTF-32 for now, sorry
		return '';
	}

   /**
	* encodes an arbitrary variable into JSON format
	*
	* @param    mixed   $var    any number, boolean, string, array, or object to be encoded.
	*                           see argument 1 to Services_JSON() above for array-parsing behavior.
	*                           if var is a strng, note that encode() always expects it
	*                           to be in ASCII or UTF-8 format!
	*
	* @return   mixed   JSON string representation of input var or an error if a problem occurs
	* @access   public
	*/
	function encode($var)
	{
		switch (gettype($var)) {
			case 'boolean':
				return $var ? 'true' : 'false';

			case 'NULL':
				return 'null';

			case 'integer':
				return (int) $var;

			case 'double':
			case 'float':
				return (float) $var;

			case 'string':
				// STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
				$ascii = '';
				$strlen_var = strlen($var);

			   /*
				* Iterate over every character in the string,
				* escaping with a slash or encoding to UTF-8 where necessary
				*/
				for ($c = 0; $c < $strlen_var; ++$c) {

					$ord_var_c = ord($var{$c});

					switch (true) {
						case $ord_var_c == 0x08:
							$ascii .= '\b';
							break;
						case $ord_var_c == 0x09:
							$ascii .= '\t';
							break;
						case $ord_var_c == 0x0A:
							$ascii .= '\n';
							break;
						case $ord_var_c == 0x0C:
							$ascii .= '\f';
							break;
						case $ord_var_c == 0x0D:
							$ascii .= '\r';
							break;

						case $ord_var_c == 0x22:
						case $ord_var_c == 0x2F:
						case $ord_var_c == 0x5C:
							// double quote, slash, slosh
							$ascii .= '\\'.$var{$c};
							break;

						case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
							// characters U-00000000 - U-0000007F (same as ASCII)
							$ascii .= $var{$c};
							break;

						case (($ord_var_c & 0xE0) == 0xC0):
							// characters U-00000080 - U-000007FF, mask 110XXXXX
							// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
							$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
							$c += 1;
							$utf16 = $this->utf82utf16($char);
							$ascii .= sprintf('\u%04s', bin2hex($utf16));
							break;

						case (($ord_var_c & 0xF0) == 0xE0):
							// characters U-00000800 - U-0000FFFF, mask 1110XXXX
							// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
							$char = pack('C*', $ord_var_c,
										 ord($var{$c + 1}),
										 ord($var{$c + 2}));
							$c += 2;
							$utf16 = $this->utf82utf16($char);
							$ascii .= sprintf('\u%04s', bin2hex($utf16));
							break;

						case (($ord_var_c & 0xF8) == 0xF0):
							// characters U-00010000 - U-001FFFFF, mask 11110XXX
							// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
							$char = pack('C*', $ord_var_c,
										 ord($var{$c + 1}),
										 ord($var{$c + 2}),
										 ord($var{$c + 3}));
							$c += 3;
							$utf16 = $this->utf82utf16($char);
							$ascii .= sprintf('\u%04s', bin2hex($utf16));
							break;

						case (($ord_var_c & 0xFC) == 0xF8):
							// characters U-00200000 - U-03FFFFFF, mask 111110XX
							// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
							$char = pack('C*', $ord_var_c,
										 ord($var{$c + 1}),
										 ord($var{$c + 2}),
										 ord($var{$c + 3}),
										 ord($var{$c + 4}));
							$c += 4;
							$utf16 = $this->utf82utf16($char);
							$ascii .= sprintf('\u%04s', bin2hex($utf16));
							break;

						case (($ord_var_c & 0xFE) == 0xFC):
							// characters U-04000000 - U-7FFFFFFF, mask 1111110X
							// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
							$char = pack('C*', $ord_var_c,
										 ord($var{$c + 1}),
										 ord($var{$c + 2}),
										 ord($var{$c + 3}),
										 ord($var{$c + 4}),
										 ord($var{$c + 5}));
							$c += 5;
							$utf16 = $this->utf82utf16($char);
							$ascii .= sprintf('\u%04s', bin2hex($utf16));
							break;
					}
				}

				return '"'.$ascii.'"';

			case 'array':
			   /*
				* As per JSON spec if any array key is not an integer
				* we must treat the the whole array as an object. We
				* also try to catch a sparsely populated associative
				* array with numeric keys here because some JS engines
				* will create an array with empty indexes up to
				* max_index which can cause memory issues and because
				* the keys, which may be relevant, will be remapped
				* otherwise.
				*
				* As per the ECMA and JSON specification an object may
				* have any string as a property. Unfortunately due to
				* a hole in the ECMA specification if the key is a
				* ECMA reserved word or starts with a digit the
				* parameter is only accessible using ECMAScript's
				* bracket notation.
				*/

				// treat as a JSON object
				if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
					$properties = array_map(array($this, 'name_value'),
											array_keys($var),
											array_values($var));

					foreach($properties as $property) {
						if(json::isError($property)) {
							return $property;
						}
					}

					return '{' . join(',', $properties) . '}';
				}

				// treat it like a regular array
				$elements = array_map(array($this, 'encode'), $var);

				foreach($elements as $element) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文字幕一区二区视频| 久久人人爽爽爽人久久久| 中文字幕在线一区| 99久久精品费精品国产一区二区| 久久黄色级2电影| 精品成人一区二区三区四区| 激情图区综合网| 国产精品色呦呦| 色综合久久久久久久久| 亚洲成av人片在线观看无码| 在线播放中文一区| 国产一区美女在线| 国产精品进线69影院| 日本黄色一区二区| 麻豆精品久久久| 国产精品伦一区二区三级视频| 91在线观看成人| 视频一区二区三区在线| 国产婷婷色一区二区三区| 一本色道亚洲精品aⅴ| 日本一道高清亚洲日美韩| 国产三级精品视频| 欧美精品久久99久久在免费线 | 国产精品久久久久久福利一牛影视| 99re6这里只有精品视频在线观看| 亚洲免费观看高清完整版在线观看 | 日韩欧美一区二区免费| 国产九色sp调教91| 亚洲精品精品亚洲| 精品成a人在线观看| 91小视频在线| 国产乱妇无码大片在线观看| 中文字幕一区免费在线观看 | 67194成人在线观看| 成人永久aaa| 丁香亚洲综合激情啪啪综合| 一区二区三区在线视频免费观看 | 国产成人8x视频一区二区| 午夜欧美视频在线观看| 国产精品精品国产色婷婷| 欧美xxxx老人做受| 欧美亚洲一区三区| 高清av一区二区| 蓝色福利精品导航| 一级女性全黄久久生活片免费| 久久亚洲影视婷婷| 7777精品伊人久久久大香线蕉超级流畅| 懂色av中文字幕一区二区三区| 蜜臀av国产精品久久久久| 亚洲美女视频在线| 国产欧美1区2区3区| 欧美一区二区三区视频免费 | 免费欧美在线视频| 亚洲一区二区五区| 成人欧美一区二区三区1314| 久久综合色综合88| 精品久久久久99| 91精品国产免费| 欧美精品日韩综合在线| 在线视频一区二区三| 国产超碰在线一区| 国产精品亚洲综合一区在线观看| 日韩成人一区二区| 天堂成人免费av电影一区| 亚洲精品乱码久久久久久黑人| 国产精品久久免费看| 国产精品青草久久| 国产欧美一区视频| 国产日韩欧美在线一区| 欧美精品一区二区三区四区| 日韩美女视频在线| 精品国产乱码91久久久久久网站| 欧美一区二区三区小说| 欧美一区二区黄色| 欧美一级艳片视频免费观看| 欧美精品xxxxbbbb| 日韩一区二区三区视频在线观看| 在线播放国产精品二区一二区四区| 日本二三区不卡| 欧美天堂一区二区三区| 欧美日韩高清影院| 欧美一区二区三区婷婷月色| 91精品国产美女浴室洗澡无遮挡| 56国语精品自产拍在线观看| 91精品婷婷国产综合久久竹菊| 欧美日韩国产中文| 日韩一级高清毛片| 国产三级三级三级精品8ⅰ区| 久久影院视频免费| 奇米影视一区二区三区| 九色综合国产一区二区三区| 精品一区二区三区久久| 国产成人在线影院| 91在线你懂得| 91麻豆精品国产91久久久久| 精品999久久久| 中文在线免费一区三区高中清不卡 | 成人在线视频一区| 在线亚洲高清视频| 欧美一区二区三区思思人| 久久久久久一二三区| 中文天堂在线一区| 亚洲一区二区综合| 久久99精品一区二区三区| 成人综合激情网| 欧美视频一区二区三区四区| 精品日韩av一区二区| 国产精品久久久久久久久久免费看| 日韩毛片在线免费观看| 日本欧美久久久久免费播放网| 国产精品综合在线视频| 色偷偷成人一区二区三区91| 制服视频三区第一页精品| 国产精品入口麻豆九色| 亚洲福利一区二区| 国产不卡视频在线播放| 欧美日韩成人一区二区| 日本一区二区三区四区在线视频| 亚洲精品国产精品乱码不99| 美女免费视频一区二区| 色综合久久久久久久久| 亚洲精品一线二线三线无人区| 中文字幕字幕中文在线中不卡视频| 免费在线观看一区| 欧美自拍偷拍午夜视频| 久久久精品tv| 日韩中文字幕1| 972aa.com艺术欧美| 日韩美女天天操| 午夜精品成人在线视频| 成人免费毛片app| 日韩免费视频线观看| 一区二区三区欧美亚洲| 国产成人av电影| 精品国产免费人成电影在线观看四季 | 91美女在线观看| 久久久久久久久久看片| 天天综合网 天天综合色| av亚洲精华国产精华精| 精品美女在线观看| 亚洲成精国产精品女| 99久久亚洲一区二区三区青草| 欧美精品一区二区三区一线天视频 | 欧美大片一区二区| 亚洲国产视频a| 日本丰满少妇一区二区三区| 国产精品女主播av| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲精品国产品国语在线app| 国产精品亚洲第一区在线暖暖韩国 | 精品视频在线免费| 中文字幕日本不卡| 成人久久18免费网站麻豆| 精品国产乱码久久久久久久| 青青草视频一区| 欧美一区二区三区视频免费播放| 亚洲成年人网站在线观看| 在线观看网站黄不卡| 亚洲激情欧美激情| 色悠久久久久综合欧美99| 亚洲丝袜美腿综合| 99re在线视频这里只有精品| 欧美极品aⅴ影院| 国产iv一区二区三区| 久久亚洲私人国产精品va媚药| 蜜臀av性久久久久蜜臀av麻豆| 欧美久久久久久久久| 婷婷中文字幕一区三区| 欧美日韩另类国产亚洲欧美一级| 一区二区三区四区亚洲| 欧美亚日韩国产aⅴ精品中极品| 一区二区三区四区视频精品免费| 在线观看日韩av先锋影音电影院| 亚洲色图视频网| 欧美性感一区二区三区| 午夜私人影院久久久久| 制服.丝袜.亚洲.中文.综合| 日韩国产欧美一区二区三区| 欧美大片在线观看| 国产高清一区日本| 中文字幕亚洲区| 色婷婷综合久久久久中文一区二区| 亚洲在线观看免费视频| 欧美电影在哪看比较好| 麻豆精品久久久| 国产精品少妇自拍| 欧美最新大片在线看| 日韩高清在线一区| 久久久久99精品国产片| 不卡av免费在线观看| 一区二区在线观看免费| 日韩一区二区三区免费观看| 国产在线精品一区二区三区不卡| 国产精品素人视频| 欧美色区777第一页| 亚洲成人福利片| 久久精品免视看| 色综合亚洲欧洲| 蜜臀久久99精品久久久久久9| 欧美精品一区二区高清在线观看 |