Completed
Push — master ( 509dee...ac735c )
by Gaetano
03:01
created

xmlrpcval::serializeval()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 1
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
1
<?php
2
// by Edd Dumbill (C) 1999-2002
3
// <[email protected]>
4
5
// Copyright (c) 1999,2000,2002 Edd Dumbill.
6
// All rights reserved.
7
//
8
// Redistribution and use in source and binary forms, with or without
9
// modification, are permitted provided that the following conditions
10
// are met:
11
//
12
//    * Redistributions of source code must retain the above copyright
13
//      notice, this list of conditions and the following disclaimer.
14
//
15
//    * Redistributions in binary form must reproduce the above
16
//      copyright notice, this list of conditions and the following
17
//      disclaimer in the documentation and/or other materials provided
18
//      with the distribution.
19
//
20
//    * Neither the name of the "XML-RPC for PHP" nor the names of its
21
//      contributors may be used to endorse or promote products derived
22
//      from this software without specific prior written permission.
23
//
24
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
// REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
30
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
33
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
35
// OF THE POSSIBILITY OF SUCH DAMAGE.
36
37
/******************************************************************************
38
 *
39
 * *** DEPRECATED ***
40
 *
41
 * This file is only used to insure backwards compatibility
42
 * with the API of the library <= rev. 3
43
 *
44
 * If it is included, the library will work without any further autoloading
45
 *****************************************************************************/
46
47
include_once(__DIR__.'/../src/PhpXmlRpc.php');
48
include_once(__DIR__.'/../src/Value.php');
49
include_once(__DIR__.'/../src/Request.php');
50
include_once(__DIR__.'/../src/Response.php');
51
include_once(__DIR__.'/../src/Client.php');
52
include_once(__DIR__.'/../src/Encoder.php');
53
include_once(__DIR__.'/../src/Helper/Charset.php');
54
include_once(__DIR__.'/../src/Helper/Date.php');
55
include_once(__DIR__.'/../src/Helper/Http.php');
56
include_once(__DIR__.'/../src/Helper/Logger.php');
57
include_once(__DIR__.'/../src/Helper/XMLParser.php');
58
59
60
/* Expose the global variables which used to be defined */
61
PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding = 'ISO-8859-1'; // old default
62
PhpXmlRpc\PhpXmlRpc::exportGlobals();
63
64
/* some stuff deprecated enough that we do not want to put it in the new lib version */
65
66
/// @deprecated
67
$GLOBALS['xmlEntities'] = array(
68
    'amp'  => '&',
69
    'quot' => '"',
70
    'lt'   => '<',
71
    'gt'   => '>',
72
    'apos' => "'"
73
);
74
75
// formulate backslashes for escaping regexp
76
// Not in use anymore since 2.0. Shall we remove it?
77
/// @deprecated
78
$GLOBALS['xmlrpc_backslash'] = chr(92).chr(92);
79
80
/* Expose with the old names the classes which have been namespaced */
81
82
class xmlrpcval extends PhpXmlRpc\Value
83
{
84
    /**
85
     * @deprecated
86
     * @param xmlrpcval $o
87
     * @return string
88
     */
89
    public function serializeval($o)
90
    {
91
        // add check? slower, but helps to avoid recursion in serializing broken xmlrpcvals...
92
        //if (is_object($o) && (get_class($o) == 'xmlrpcval' || is_subclass_of($o, 'xmlrpcval')))
93
        //{
94
        $ar = $o->me;
95
        $val = reset($ar);
96
        $typ = key($ar);
97
98
        return '<value>' . $this->serializedata($typ, $val) . "</value>\n";
99
        //}
100
    }
101
102
    /**
103
     * @deprecated this code looks like it is very fragile and has not been fixed
104
     * for a long long time. Shall we remove it for 2.0?
105
     */
106
    public function getval()
107
    {
108
        // UNSTABLE
109
        $b = reset($this->me);
110
        $a = key($this->me);
111
        // contributed by I Sofer, 2001-03-24
112
        // add support for nested arrays to scalarval
113
        // i've created a new method here, so as to
114
        // preserve back compatibility
115
116
        if (is_array($b)) {
117
            foreach($b as $id => $cont) {
118
                $b[$id] = $cont->scalarval();
119
            }
120
        }
121
122
        // add support for structures directly encoding php objects
123
        if (is_object($b)) {
124
            $t = get_object_vars($b);
125
            foreach($t as $id => $cont) { {
126
                $t[$id] = $cont->scalarval();
127
            }
128
            foreach($t as $id => $cont) {
129
                @$b->$id = $cont;
130
            }
131
        }
132
        // end contrib
133
        return $b;
134
    }
135
136
    /// reset functionality added by parent class: same as it would happen if no interface was declared
137
    public function count()
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_PUBLIC
Loading history...
138
    {
139
        return 1;
140
    }
141
142
    /// reset functionality added by parent class: same as it would happen if no interface was declared
143
    public function getIterator() {
144
        return new ArrayIterator($this);
145
    }
146
}
147
148
class xmlrpcmsg extends PhpXmlRpc\Request
149
{
150
}
151
152
class xmlrpcresp extends PhpXmlRpc\Response
153
{
154
}
155
156
class xmlrpc_client extends PhpXmlRpc\Client
157
{
158
}
159
160
/* Expose as global functions the ones which are now class methods */
161
162
/// Wrong speling, but we are adamant on backwards compatibility!
163
function xmlrpc_encode_entitites($data, $srcEncoding='', $destEncoding='')
164
{
165
    return PhpXmlRpc\Helper\Charset::instance()->encodeEntitites($data, $srcEncoding, $destEncoding);
166
}
167
168
function iso8601_encode($timeT, $utc=0)
169
{
170
    return PhpXmlRpc\Helper\Date::iso8601Encode($timeT, $utc);
171
}
172
173
function iso8601_decode($iDate, $utc=0)
174
{
175
    return PhpXmlRpc\Helper\Date::iso8601Decode($iDate, $utc);
176
}
177
178
function decode_chunked($buffer)
179
{
180
    return PhpXmlRpc\Helper\Http::decodeChunked($buffer);
181
}
182
183
function php_xmlrpc_decode($xmlrpcVal, $options=array())
184
{
185
    $encoder = new PhpXmlRpc\Encoder();
186
    return $encoder->decode($xmlrpcVal, $options);
187
}
188
189
function php_xmlrpc_encode($phpVal, $options=array())
190
{
191
    $encoder = new PhpXmlRpc\Encoder();
192
    return $encoder->encode($phpVal, $options);
193
}
194
195
function php_xmlrpc_decode_xml($xmlVal, $options=array())
196
{
197
    $encoder = new PhpXmlRpc\Encoder();
198
    return $encoder->decodeXml($xmlVal, $options);
199
}
200
201
function guess_encoding($httpHeader='', $xmlChunk='', $encodingPrefs=null)
202
{
203
    return PhpXmlRpc\Helper\XMLParser::guessEncoding($httpHeader, $xmlChunk, $encodingPrefs);
204
}
205
206
function has_encoding($xmlChunk)
207
{
208
    return PhpXmlRpc\Helper\XMLParser::hasEncoding($xmlChunk);
209
}
210
211
function is_valid_charset($encoding, $validList)
212
{
213
    return PhpXmlRpc\Helper\Charset::instance()->isValidCharset($encoding, $validList);
214
}
215