<?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 <[email protected]>
* @author Matt Knapp <mdknapp[at]gmail[dot]com>
* @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
* @copyright 2005 Michal Migurski
* @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', 4);
/**
* Marker constant for Services_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_OBJ', 8);
/**
* Marker constant for Services_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_CMT', 16);
/**
* Behavior switch for Services_JSON::decode()
*/
define('SERVICES_JSON_LOOSE_TYPE', 10);
/**
* Behavior switch for Services_JSON::decode()
*/
define('SERVICES_JSON_STRICT_TYPE', 11);
/**
* Encodings
*/
define('SERVICES_JSON_ISO_8859_1', 'iso-8859-1');
define('SERVICES_JSON_UTF_8', 'utf-8');
/**
* 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 Services_JSON
{
/**
* constructs a new JSON instance
*
//>> SJM2005
* @param string $encoding Strings are input/output in this encoding
* @param int $encode Encode input is expected in this character encoding
//<< SJM2005
*
* @param int $use object behavior: when encoding or decoding,
* be loose or strict about object/array usage
*
* possible values:
* - SERVICES_JSON_STRICT_TYPE: strict typing, default.
* "{...}" syntax creates objects in decode().
* - SERVICES_JSON_LOOSE_TYPE: loose typing.
* "{...}" syntax creates associative arrays in decode().
*/
function Services_JSON($encoding = SERVICES_JSON_UTF_8, $use = SERVICES_JSON_STRICT_TYPE)
{
//>> SJM2005
$this->encoding = $encoding;
//<< SJM2005
$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(
没有合适的资源?快使用搜索试试~ 我知道了~
src4.rar_cloud_cloud computing_src4_云计算
共2785个文件
js:1757个
png:296个
css:193个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 99 浏览量
2022-09-22
20:14:21
上传
评论
收藏 3.42MB RAR 举报
温馨提示
很好的用于初步学习和实践参考的云计算源代码4
资源推荐
资源详情
资源评论
收起资源包目录
src4.rar_cloud_cloud computing_src4_云计算 (2785个子文件)
Storage.as 12KB
DojoExternalInterface.as 5KB
ExpressInstall.as 2KB
build.bat 261B
TestXCAPortBindingStub.class 7KB
PageCodeBase.class 6KB
PageCodeBase.class 6KB
TestXCAServiceLocator.class 6KB
CompanyManager.class 5KB
ListCompany.class 5KB
Logon.class 5KB
TestXCAServiceInformation.class 4KB
Company.class 3KB
IDSuggestions.class 3KB
TestXCADelegateProxy.class 3KB
WSJSFTest.class 2KB
TestXCADelegate_Test.class 1KB
Logout.class 1KB
TestXCADelegate_Test$ParamBean.class 704B
AbstractServiceBean.class 660B
TestXCAService.class 404B
TestXCADelegate.class 260B
.classpath 998B
.classpath 823B
org.eclipse.wst.common.component 1KB
org.eclipse.wst.common.component 1KB
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.container 49B
stylesheet.css 37KB
dijit.css 33KB
TabContainer.css 10KB
TabContainer.css 10KB
DropDownSelect.css 8KB
FilePickerTextBox.css 8KB
Calendar.css 7KB
images.css 6KB
Grid.css 6KB
tundraGrid.css 5KB
Dialog.css 5KB
TabContainer.css 5KB
nihiloGrid.css 5KB
soriaGrid.css 5KB
dojo.css 5KB
Button.css 4KB
Common.css 4KB
Grid.css 4KB
Dialog.css 4KB
tundraGrid.css 4KB
Dialog.css 4KB
FloatingPane.css 4KB
ExpandoPane.css 4KB
firebug.css 4KB
noir.css 4KB
Slider.css 4KB
Slider.css 4KB
Slider.css 4KB
RollingList.css 4KB
nihiloGrid.css 4KB
soriaGrid.css 4KB
Editor.css 3KB
Editor.css 3KB
Editor.css 3KB
ToggleSplitter.css 3KB
Calendar.css 3KB
Button.css 3KB
editorPlugins.css 3KB
Player.css 3KB
Calendar.css 3KB
Calendar.css 3KB
Button.css 3KB
Common.css 3KB
Common.css 3KB
Tree.css 3KB
Tree.css 3KB
CheckedMultiSelect.css 3KB
Tree.css 3KB
FileInput.css 2KB
Toolbar.css 2KB
SlideShow.css 2KB
Lightbox.css 2KB
RotatorContainer.css 2KB
HtmlFeedEntryViewer.css 2KB
HtmlFeedEntryViewer.css 2KB
Toolbar.css 2KB
Toolbar.css 2KB
ThumbnailPicker.css 2KB
stylesheet.css 2KB
TitlePane.css 2KB
TitlePane.css 2KB
HtmlFeedEntryEditor.css 2KB
HtmlFeedEntryEditor.css 2KB
ColorPicker.css 2KB
FilePicker.css 2KB
Dialog.css 2KB
dijit_rtl.css 2KB
BorderContainer.css 2KB
BorderContainer.css 2KB
murphy.css 2KB
SortList.css 2KB
TitlePane.css 2KB
共 2785 条
- 1
- 2
- 3
- 4
- 5
- 6
- 28
资源评论
weixin_42651887
- 粉丝: 79
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功