ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 4924


Ignore:
Timestamp:
Jan 12, 2008, 4:47:58 AM (12 years ago)
Author:
ebihara
Message:

#1761:PEAR::XML_*のバージョンアップ

  • PEAR::XML_RPC のバージョンを 1.5.0から 1.5.1に上げた
  • PEAR::XML_Parser のバージョンを 1.2.7 から 1.2.8 に上げた
Location:
OpenPNE/trunk/lib/include/XML
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/lib/include/XML/Parser.php

    r2 r4924  
    1919// +----------------------------------------------------------------------+
    2020//
    21 // $Id: Parser.php,v 1.26 2005/09/23 11:51:10 schst Exp $
     21// $Id: Parser.php,v 1.28 2006/12/01 16:23:22 schst Exp $
    2222
    2323/**
     
    165165    var $_handlerObj;
    166166
     167    /**
     168     * valid encodings
     169     *
     170     * @var array
     171     */
     172    var $_validEncodings = array('ISO-8859-1', 'UTF-8', 'US-ASCII');
     173
    167174    // }}}
    168175    // {{{ constructor
     
    222229     * @access  public
    223230     * @param   string          mode, either 'func' or 'event'
    224      * @return  boolean|object  true on success, PEAR_Error otherwise   
     231     * @return  boolean|object  true on success, PEAR_Error otherwise
    225232     */
    226233    function setMode($mode)
     
    333340            }
    334341            xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, $this->folding);
    335 
    336342            return true;
     343        }
     344        if (!in_array(strtoupper($this->srcenc), $this->_validEncodings)) {
     345            return $this->raiseError('invalid source encoding', XML_PARSER_ERROR_INVALID_ENCODING);
    337346        }
    338347        return $this->raiseError('Unable to create XML parser resource.', XML_PARSER_ERROR_NO_RESOURCE);
     
    382391            }
    383392        }
    384        
     393
    385394        $fp = @fopen($file, 'rb');
    386395        if (is_resource($fp)) {
     
    393402    // }}}
    394403    // {{{ setInputString()
    395    
     404
    396405    /**
    397406     * XML_Parser::setInputString()
    398      * 
     407     *
    399408     * Sets the xml input from a string
    400      * 
     409     *
    401410     * @param string $data a string containing the XML document
    402411     * @return null
     
    407416        return null;
    408417    }
    409    
     418
    410419    // }}}
    411420    // {{{ setInput()
     
    415424     *
    416425     * You should use setInputFile() or setInputString() if you
    417      * pass a string 
     426     * pass a string
    418427     *
    419428     * @param    mixed  $fp  Can be either a resource returned from fopen(),
     
    466475        // if $this->fp was fopened previously
    467476        if (is_resource($this->fp)) {
    468        
     477
    469478            while ($data = fread($this->fp, 4096)) {
    470479                if (!$this->_parseString($data, feof($this->fp))) {
     
    489498    /**
    490499     * XML_Parser::_parseString()
    491      * 
     500     *
    492501     * @param string $data
    493502     * @param boolean $eof
     
    500509        return xml_parse($this->parser, $data, $eof);
    501510    }
    502    
     511
    503512    // }}}
    504513    // {{{ parseString()
     
    506515    /**
    507516     * XML_Parser::parseString()
    508      * 
     517     *
    509518     * Parses a string.
    510519     *
     
    520529            $this->reset();
    521530        }
    522        
     531
    523532        if (!$this->_parseString($data, $eof)) {
    524533           $error = &$this->raiseError();
     
    532541        return true;
    533542    }
    534    
     543
    535544    /**
    536545     * XML_Parser::free()
    537      * 
     546     *
    538547     * Free the internal resources associated with the parser
    539      * 
     548     *
    540549     * @return null
    541550     **/
     
    552561        return null;
    553562    }
    554    
     563
    555564    /**
    556565     * XML_Parser::raiseError()
    557      * 
     566     *
    558567     * Throws a XML_Parser_Error
    559      * 
     568     *
    560569     * @param string  $msg   the error message
    561570     * @param integer $ecode the error message code
    562      * @return XML_Parser_Error 
     571     * @return XML_Parser_Error
    563572     **/
    564573    function raiseError($msg = null, $ecode = 0)
     
    568577        return parent::raiseError($err);
    569578    }
    570    
     579
    571580    // }}}
    572581    // {{{ funcStartHandler()
     
    575584    {
    576585        $func = 'xmltag_' . $elem;
    577         if (strchr($func, '.')) {
    578             $func = str_replace('.', '_', $func);
    579         }
     586        $func = str_replace(array('.', '-', ':'), '_', $func);
    580587        if (method_exists($this->_handlerObj, $func)) {
    581588            call_user_func(array(&$this->_handlerObj, $func), $xp, $elem, $attribs);
     
    591598    {
    592599        $func = 'xmltag_' . $elem . '_';
    593         if (strchr($func, '.')) {
    594             $func = str_replace('.', '_', $func);
    595         }
     600        $func = str_replace(array('.', '-', ':'), '_', $func);
    596601        if (method_exists($this->_handlerObj, $func)) {
    597602            call_user_func(array(&$this->_handlerObj, $func), $xp, $elem);
     
    652657    *
    653658    * @var      string
    654     */   
     659    */
    655660    var $error_message_prefix = 'XML_Parser: ';
    656661
     
    669674    * @param    integer             error handling
    670675    * @param    integer             error level
    671     */   
     676    */
    672677    function XML_Parser_Error($msgorparser = 'unknown error', $code = 0, $mode = PEAR_ERROR_RETURN, $level = E_USER_NOTICE)
    673678    {
  • OpenPNE/trunk/lib/include/XML/RPC.php

    r2 r4924  
    3333 * @author     Daniel Convissor <danielc@php.net>
    3434 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    35  * @version    CVS: $Id: RPC.php,v 1.99 2006/06/16 16:00:54 danielc Exp $
     35 * @version    CVS: $Id: RPC.php,v 1.101 2006/10/28 16:42:34 danielc Exp $
    3636 * @link       http://pear.php.net/package/XML_RPC
    3737 */
     
    580580 * @author     Daniel Convissor <danielc@php.net>
    581581 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    582  * @version    Release: 1.5.0
     582 * @version    Release: 1.5.1
    583583 * @link       http://pear.php.net/package/XML_RPC
    584584 */
     
    625625 * @author     Daniel Convissor <danielc@php.net>
    626626 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    627  * @version    Release: 1.5.0
     627 * @version    Release: 1.5.1
    628628 * @link       http://pear.php.net/package/XML_RPC
    629629 */
     
    10671067 * @author     Daniel Convissor <danielc@php.net>
    10681068 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    1069  * @version    Release: 1.5.0
     1069 * @version    Release: 1.5.1
    10701070 * @link       http://pear.php.net/package/XML_RPC
    10711071 */
     
    11581158 * @author     Daniel Convissor <danielc@php.net>
    11591159 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    1160  * @version    Release: 1.5.0
     1160 * @version    Release: 1.5.1
    11611161 * @link       http://pear.php.net/package/XML_RPC
    11621162 */
    11631163class XML_RPC_Message extends XML_RPC_Base
    11641164{
     1165    /**
     1166     * Should the payload's content be passed through mb_convert_encoding()?
     1167     *
     1168     * @see XML_RPC_Message::setConvertPayloadEncoding()
     1169     * @since Property available since Release 1.5.1
     1170     * @var boolean
     1171     */
     1172    var $convert_payload_encoding = false;
     1173
    11651174    /**
    11661175     * The current debug mode (1 = on, 0 = off)
     
    12621271     * (CRLF), which is probably required by specifications.
    12631272     *
    1264      * If PHP's mbstring extension is enabled, the mb_convert_encoding()
    1265      * function is used to ensure the payload matches the encoding set in the
     1273     * If XML_RPC_Message::setConvertPayloadEncoding() was set to true,
     1274     * the payload gets passed through mb_convert_encoding()
     1275     * to ensure the payload matches the encoding set in the
    12661276     * XML declaration.  The encoding type can be manually set via
    12671277     * XML_RPC_Message::setSendEncoding().
     
    12701280     *
    12711281     * @uses XML_RPC_Message::xml_header(), XML_RPC_Message::xml_footer()
    1272      * @see XML_RPC_Message::setSendEncoding(), $GLOBALS['XML_RPC_defencoding']
     1282     * @see XML_RPC_Message::setSendEncoding(), $GLOBALS['XML_RPC_defencoding'],
     1283     *      XML_RPC_Message::setConvertPayloadEncoding()
    12731284     */
    12741285    function createPayload()
     
    12881299            $this->payload = $GLOBALS['XML_RPC_func_ereg_replace']("\r\n|\n|\r|\n\r", "\r\n", $this->payload);
    12891300        }
    1290         if (function_exists('mb_convert_encoding')) {
     1301        if ($this->convert_payload_encoding) {
    12911302            $this->payload = mb_convert_encoding($this->payload, $this->send_encoding);
    12921303        }
     
    13541365
    13551366    /**
     1367     * Sets whether the payload's content gets passed through
     1368     * mb_convert_encoding()
     1369     *
     1370     * Returns PEAR_ERROR object if mb_convert_encoding() isn't available.
     1371     *
     1372     * @param int $in  where 1 = on, 0 = off
     1373     *
     1374     * @return void
     1375     *
     1376     * @see XML_RPC_Message::setSendEncoding()
     1377     * @since Method available since Release 1.5.1
     1378     */
     1379    function setConvertPayloadEncoding($in)
     1380    {
     1381        if ($in && !function_exists('mb_convert_encoding')) {
     1382            return $this->raiseError('mb_convert_encoding() is not available',
     1383                              XML_RPC_ERROR_PROGRAMMING);
     1384        }
     1385        $this->convert_payload_encoding = $in;
     1386    }
     1387
     1388    /**
    13561389     * Sets the XML declaration's encoding attribute
    13571390     *
     
    13601393     * @return void
    13611394     *
    1362      * @see XML_RPC_Message::$send_encoding, XML_RPC_Message::xml_header()
     1395     * @see XML_RPC_Message::setConvertPayloadEncoding(), XML_RPC_Message::xml_header()
    13631396     * @since Method available since Release 1.2.0
    13641397     */
     
    15141547        } else {
    15151548            $v = $XML_RPC_xh[$parser]['value'];
    1516             $allOK=1;
    15171549            if ($XML_RPC_xh[$parser]['isf']) {
    15181550                $f = $v->structmem('faultCode');
     
    15391571 * @author     Daniel Convissor <danielc@php.net>
    15401572 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    1541  * @version    Release: 1.5.0
     1573 * @version    Release: 1.5.1
    15421574 * @link       http://pear.php.net/package/XML_RPC
    15431575 */
     
    18141846
    18151847    /**
    1816      * @return mixed
     1848     * @return mixed  the current element's scalar value.  If the value is
     1849     *                 not scalar, FALSE is returned.
    18171850     */
    18181851    function scalarval()
    18191852    {
    18201853        reset($this->me);
    1821         return current($this->me);
     1854        $v = current($this->me);
     1855        if (!is_scalar($v)) {
     1856            $v = false;
     1857        }
     1858        return $v;
    18221859    }
    18231860
  • OpenPNE/trunk/lib/include/XML/RPC/Dump.php

    r2 r4924  
    4343 * @package    XML_RPC
    4444 * @author     Christian Weiske <cweiske@php.net>
    45  * @version    Release: 1.5.0
     45 * @version    Release: 1.5.1
    4646 * @link       http://pear.php.net/package/XML_RPC
    4747 */
  • OpenPNE/trunk/lib/include/XML/RPC/Server.php

    r2 r4924  
    3333 * @author     Daniel Convissor <danielc@php.net>
    3434 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    35  * @version    CVS: $Id: Server.php,v 1.36 2006/06/21 12:17:27 danielc Exp $
     35 * @version    CVS: $Id: Server.php,v 1.37 2006/10/28 16:42:34 danielc Exp $
    3636 * @link       http://pear.php.net/package/XML_RPC
    3737 */
     
    271271 * @author     Daniel Convissor <danielc@php.net>
    272272 * @copyright  1999-2001 Edd Dumbill, 2001-2006 The PHP Group
    273  * @version    Release: 1.5.0
     273 * @version    Release: 1.5.1
    274274 * @link       http://pear.php.net/package/XML_RPC
    275275 */
    276276class XML_RPC_Server
    277277{
     278    /**
     279     * Should the payload's content be passed through mb_convert_encoding()?
     280     *
     281     * @see XML_RPC_Server::setConvertPayloadEncoding()
     282     * @since Property available since Release 1.5.1
     283     * @var boolean
     284     */
     285    var $convert_payload_encoding = false;
     286
    278287    /**
    279288     * The dispatch map, listing the methods this server provides.
     
    374383
    375384    /**
     385     * Sets whether the payload's content gets passed through
     386     * mb_convert_encoding()
     387     *
     388     * Returns PEAR_ERROR object if mb_convert_encoding() isn't available.
     389     *
     390     * @param int $in  where 1 = on, 0 = off
     391     *
     392     * @return void
     393     *
     394     * @see XML_RPC_Message::getEncoding()
     395     * @since Method available since Release 1.5.1
     396     */
     397    function setConvertPayloadEncoding($in)
     398    {
     399        if ($in && !function_exists('mb_convert_encoding')) {
     400            return $this->raiseError('mb_convert_encoding() is not available',
     401                              XML_RPC_ERROR_PROGRAMMING);
     402        }
     403        $this->convert_payload_encoding = $in;
     404    }
     405
     406    /**
    376407     * Sends the response
    377408     *
     
    415446     * Generates the payload and puts it in the $server_payload property
    416447     *
     448     * If XML_RPC_Server::setConvertPayloadEncoding() was set to true,
     449     * the payload gets passed through mb_convert_encoding()
     450     * to ensure the payload matches the encoding set in the
     451     * XML declaration.  The encoding type can be manually set via
     452     * XML_RPC_Message::setSendEncoding().
     453     *
    417454     * @return void
    418455     *
    419456     * @uses XML_RPC_Server::parseRequest(), XML_RPC_Server::$encoding,
    420457     *       XML_RPC_Response::serialize(), XML_RPC_Server::serializeDebug()
     458     * @see  XML_RPC_Server::setConvertPayloadEncoding()
    421459     */
    422460    function createServerPayload()
     
    427465                              . $this->serializeDebug()
    428466                              . $r->serialize();
    429         if (function_exists('mb_convert_encoding')) {
     467        if ($this->convert_payload_encoding) {
    430468            $this->server_payload = mb_convert_encoding($this->server_payload,
    431469                                                        $this->encoding);
Note: See TracChangeset for help on using the changeset viewer.