晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/cloudlinux/alt-php54/root/usr/share/pear/XML/RPC/ |
| Current File : //opt/cloudlinux/alt-php54/root/usr/share/pear/XML/RPC/Dump.php |
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Function and class to dump XML_RPC_Value objects in a nice way
*
* Should be helpful as a normal var_dump(..) displays all internals which
* doesn't really give you an overview due to too much information.
*
* @category Web Services
* @package XML_RPC
* @author Christian Weiske <cweiske@php.net>
* @license http://www.php.net/license/3_01.txt PHP License
* @version SVN: $Id: Dump.php 300962 2010-07-03 02:24:24Z danielc $
* @link http://pear.php.net/package/XML_RPC
*/
/**
* Pull in the XML_RPC class
*/
require_once 'XML/RPC.php';
/**
* Generates the dump of the XML_RPC_Value and echoes it
*
* @param object $value the XML_RPC_Value object to dump
*
* @return void
*/
function XML_RPC_Dump($value)
{
$dumper = new XML_RPC_Dump();
echo $dumper->generateDump($value);
}
/**
* Class which generates a dump of a XML_RPC_Value object
*
* @category Web Services
* @package XML_RPC
* @author Christian Weiske <cweiske@php.net>
* @license http://www.php.net/license/3_01.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/XML_RPC
*/
class XML_RPC_Dump
{
/**
* The indentation array cache
* @var array
*/
var $arIndent = array();
/**
* The spaces used for indenting the XML
* @var string
*/
var $strBaseIndent = ' ';
/**
* Returns the dump in XML format without printing it out
*
* @param object $value the XML_RPC_Value object to dump
* @param int $nLevel the level of indentation
*
* @return string the dump
*/
function generateDump($value, $nLevel = 0)
{
if (!is_object($value) || strtolower(get_class($value)) != 'xml_rpc_value') {
require_once 'PEAR.php';
PEAR::raiseError('Tried to dump non-XML_RPC_Value variable' . "\r\n",
0, PEAR_ERROR_PRINT);
if (is_object($value)) {
$strType = get_class($value);
} else {
$strType = gettype($value);
}
return $this->getIndent($nLevel) . 'NOT A XML_RPC_Value: '
. $strType . "\r\n";
}
switch ($value->kindOf()) {
case 'struct':
$ret = $this->genStruct($value, $nLevel);
break;
case 'array':
$ret = $this->genArray($value, $nLevel);
break;
case 'scalar':
$ret = $this->genScalar($value->scalarval(), $nLevel);
break;
default:
require_once 'PEAR.php';
PEAR::raiseError('Illegal type "' . $value->kindOf()
. '" in XML_RPC_Value' . "\r\n", 0,
PEAR_ERROR_PRINT);
}
return $ret;
}
/**
* Returns the scalar value dump
*
* @param object $value the scalar XML_RPC_Value object to dump
* @param int $nLevel the level of indentation
*
* @return string Dumped version of the scalar value
*/
function genScalar($value, $nLevel)
{
if (gettype($value) == 'object') {
$strClass = ' ' . get_class($value);
} else {
$strClass = '';
}
return $this->getIndent($nLevel) . gettype($value) . $strClass
. ' ' . $value . "\r\n";
}
/**
* Returns the dump of a struct
*
* @param object $value the struct XML_RPC_Value object to dump
* @param int $nLevel the level of indentation
*
* @return string Dumped version of the scalar value
*/
function genStruct($value, $nLevel)
{
$value->structreset();
$strOutput = $this->getIndent($nLevel) . 'struct' . "\r\n";
while (list($key, $keyval) = $value->structeach()) {
$strOutput .= $this->getIndent($nLevel + 1) . $key . "\r\n";
$strOutput .= $this->generateDump($keyval, $nLevel + 2);
}
return $strOutput;
}
/**
* Returns the dump of an array
*
* @param object $value the array XML_RPC_Value object to dump
* @param int $nLevel the level of indentation
*
* @return string Dumped version of the scalar value
*/
function genArray($value, $nLevel)
{
$nSize = $value->arraysize();
$strOutput = $this->getIndent($nLevel) . 'array' . "\r\n";
for($nA = 0; $nA < $nSize; $nA++) {
$strOutput .= $this->getIndent($nLevel + 1) . $nA . "\r\n";
$strOutput .= $this->generateDump($value->arraymem($nA),
$nLevel + 2);
}
return $strOutput;
}
/**
* Returns the indent for a specific level and caches it for faster use
*
* @param int $nLevel the level
*
* @return string the indented string
*/
function getIndent($nLevel)
{
if (!isset($this->arIndent[$nLevel])) {
$this->arIndent[$nLevel] = str_repeat($this->strBaseIndent, $nLevel);
}
return $this->arIndent[$nLevel];
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>
|