<?php
/**
* Spyc -- A Simple PHP YAML Class
* @version 0.5
* @author Vlad Andersen <[email protected]>
* @author Chris Wanstrath <[email protected]>
* @link http://code.google.com/p/spyc/
* @copyright Copyright 2005-2006 Chris Wanstrath, 2006-2011 Vlad Andersen
* @license http://www.opensource.org/licenses/mit-license.php MIT License
* @package Spyc
*/
if (!function_exists('spyc_load')) {
/**
* Parses YAML to array.
* @param string $string YAML string.
* @return array
*/
function spyc_load ($string) {
return Spyc::YAMLLoadString($string);
}
}
if (!function_exists('spyc_load_file')) {
/**
* Parses YAML to array.
* @param string $file Path to YAML file.
* @return array
*/
function spyc_load_file ($file) {
return Spyc::YAMLLoad($file);
}
}
/**
* The Simple PHP YAML Class.
*
* This class can be used to read a YAML file and convert its contents
* into a PHP array. It currently supports a very limited subsection of
* the YAML spec.
*
* Usage:
* <code>
* $Spyc = new Spyc;
* $array = $Spyc->load($file);
* </code>
* or:
* <code>
* $array = Spyc::YAMLLoad($file);
* </code>
* or:
* <code>
* $array = spyc_load_file($file);
* </code>
* @package Spyc
*/
class Spyc {
// SETTINGS
const REMPTY = "\0\0\0\0\0";
/**
* Setting this to true will force YAMLDump to enclose any string value in
* quotes. False by default.
*
* @var bool
*/
public $setting_dump_force_quotes = false;
/**
* Setting this to true will forse YAMLLoad to use syck_load function when
* possible. False by default.
* @var bool
*/
public $setting_use_syck_is_possible = false;
/**#@+
* @access private
* @var mixed
*/
private $_dumpIndent;
private $_dumpWordWrap;
private $_containsGroupAnchor = false;
private $_containsGroupAlias = false;
private $path;
private $result;
private $LiteralPlaceHolder = '___YAML_Literal_Block___';
private $SavedGroups = array();
private $indent;
/**
* Path modifier that should be applied after adding current element.
* @var array
*/
private $delayedPath = array();
/**#@+
* @access public
* @var mixed
*/
public $_nodeId;
/**
* Load a valid YAML string to Spyc.
* @param string $input
* @return array
*/
public function load ($input) {
return $this->__loadString($input);
}
/**
* Load a valid YAML file to Spyc.
* @param string $file
* @return array
*/
public function loadFile ($file) {
return $this->__load($file);
}
/**
* Load YAML into a PHP array statically
*
* The load method, when supplied with a YAML stream (string or file),
* will do its best to convert YAML in a file into a PHP array. Pretty
* simple.
* Usage:
* <code>
* $array = Spyc::YAMLLoad('lucky.yaml');
* print_r($array);
* </code>
* @access public
* @return array
* @param string $input Path of YAML file or string containing YAML
*/
public static function YAMLLoad($input) {
$Spyc = new Spyc;
return $Spyc->__load($input);
}
/**
* Load a string of YAML into a PHP array statically
*
* The load method, when supplied with a YAML string, will do its best
* to convert YAML in a string into a PHP array. Pretty simple.
*
* Note: use this function if you don't want files from the file system
* loaded and processed as YAML. This is of interest to people concerned
* about security whose input is from a string.
*
* Usage:
* <code>
* $array = Spyc::YAMLLoadString("---\n0: hello world\n");
* print_r($array);
* </code>
* @access public
* @return array
* @param string $input String containing YAML
*/
public static function YAMLLoadString($input) {
$Spyc = new Spyc;
return $Spyc->__loadString($input);
}
/**
* Dump YAML from PHP array statically
*
* The dump method, when supplied with an array, will do its best
* to convert the array into friendly YAML. Pretty simple. Feel free to
* save the returned string as nothing.yaml and pass it around.
*
* Oh, and you can decide how big the indent is and what the wordwrap
* for folding is. Pretty cool -- just pass in 'false' for either if
* you want to use the default.
*
* Indent's default is 2 spaces, wordwrap's default is 40 characters. And
* you can turn off wordwrap by passing in 0.
*
* @access public
* @return string
* @param array $array PHP array
* @param int $indent Pass in false to use the default, which is 2
* @param int $wordwrap Pass in 0 for no wordwrap, false for default (40)
*/
public static function YAMLDump($array,$indent = false,$wordwrap = false) {
$spyc = new Spyc;
return $spyc->dump($array,$indent,$wordwrap);
}
/**
* Dump PHP array to YAML
*
* The dump method, when supplied with an array, will do its best
* to convert the array into friendly YAML. Pretty simple. Feel free to
* save the returned string as tasteful.yaml and pass it around.
*
* Oh, and you can decide how big the indent is and what the wordwrap
* for folding is. Pretty cool -- just pass in 'false' for either if
* you want to use the default.
*
* Indent's default is 2 spaces, wordwrap's default is 40 characters. And
* you can turn off wordwrap by passing in 0.
*
* @access public
* @return string
* @param array $array PHP array
* @param int $indent Pass in false to use the default, which is 2
* @param int $wordwrap Pass in 0 for no wordwrap, false for default (40)
*/
public function dump($array,$indent = false,$wordwrap = false) {
// Dumps to some very clean YAML. We'll have to add some more features
// and options soon. And better support for folding.
// New features and options.
if ($indent === false or !is_numeric($indent)) {
$this->_dumpIndent = 2;
} else {
$this->_dumpIndent = $indent;
}
if ($wordwrap === false or !is_numeric($wordwrap)) {
$this->_dumpWordWrap = 40;
} else {
$this->_dumpWordWrap = $wordwrap;
}
// New YAML document
$string = "---\n";
// Start at the base of the array and move through it.
if ($array) {
$array = (array)$array;
$previous_key = -1;
foreach ($array as $key => $value) {
if (!isset($first_key)) $first_key = $key;
$string .= $this->_yamlize($key,$value,0,$previous_key, $first_key, $array);
$previous_key = $key;
}
}
return $string;
}
/**
* Attempts to convert a key / value array item to YAML
* @access private
* @return string
* @param $key The name of the key
* @param $value The value of the item
* @param $indent The indent of the current node
*/
private function _yamlize($key,$value,$indent, $previous_key = -1, $first_key = 0, $source_array = null) {
if (is_array($value)) {
if (empty ($value))
return $this->_dumpNode($key, array(), $indent, $previous_key, $first_key, $source_array);
// It has children. What to do?
// Make it the right kind of item
$string = $this->_dumpNode($key, self::REMPTY, $indent, $previous_key, $first_key, $source_array);
// Add the indent
$indent += $this->_dumpIndent;
// Yamlize the array
$string .= $this->_yamlizeArray($value,$indent);
} elseif (!is_array($value)) {
// It doesn't have children. Yip.
$string = $this->_dumpNode($key, $value, $indent, $previous_key, $first_key, $source_array);
}
return $string;
}
/**
* Attempts to convert an array to YAML
* @access private
* @return string
* @param $array The array you want to convert
* @param $indent The indent of the current level
没有合适的资源?快使用搜索试试~ 我知道了~
BugTrace缺陷跟踪软件.7z
共184个文件
svn-base:104个
php:38个
all-wcprops:13个
0 下载量 81 浏览量
2023-03-14
11:18:38
上传
评论
收藏 199KB 7Z 举报
温馨提示
BugTrace缺陷跟踪软件.7z
资源推荐
资源详情
资源评论
收起资源包目录
BugTrace缺陷跟踪软件.7z (184个子文件)
all-wcprops 842B
all-wcprops 766B
all-wcprops 656B
all-wcprops 650B
all-wcprops 638B
all-wcprops 557B
all-wcprops 518B
all-wcprops 384B
all-wcprops 352B
all-wcprops 346B
all-wcprops 265B
all-wcprops 264B
all-wcprops 73B
bootstrap.css 124KB
bootstrap.min.css 103KB
bootstrap-responsive.css 22KB
bootstrap-responsive.min.css 16KB
default.css 7KB
entries 1KB
entries 1KB
entries 1KB
entries 1KB
entries 1KB
entries 909B
entries 883B
entries 723B
entries 699B
entries 684B
entries 557B
entries 524B
entries 189B
jquery.min.js 90KB
jquery.dataTables.min.js 69KB
bootstrap.js 60KB
bootstrap.min.js 28KB
spyc.php 31KB
bugtrace.php 9KB
b2core.php 8KB
panel.php 8KB
utility.php 4KB
user_m.php 3KB
excel.php 3KB
__construct.php 3KB
index.php 3KB
show.php 3KB
sys.php 3KB
install.php 3KB
list.php 2KB
login.php 2KB
add.php 2KB
template.php 2KB
sae_install.php 2KB
account.php 2KB
login.php 1KB
account.php 1KB
app.php 1KB
template.php 1KB
add.php 1KB
sys.php 1KB
login_ie.php 1KB
forgot.php 969B
redirect.php 777B
bug_m.php 727B
list-table.php 676B
list.php 581B
show.php 536B
config.php 515B
user.php 501B
home.php 132B
understruction.php 73B
index.php 55B
404.php 8B
index.php 1B
chrome.png 14KB
glyphicons-halflings.png 12KB
glyphicons-halflings-white.png 9KB
sort_both.png 1KB
sort_desc.png 1KB
sort_asc.png 1KB
mysql_ins.sql 2KB
bootstrap.css.svn-base 124KB
bootstrap.min.css.svn-base 103KB
jquery.min.js.svn-base 90KB
jquery.dataTables.min.js.svn-base 69KB
bootstrap.js.svn-base 60KB
spyc.php.svn-base 31KB
bootstrap.min.js.svn-base 28KB
bootstrap-responsive.css.svn-base 22KB
bootstrap-responsive.min.css.svn-base 16KB
chrome.png.svn-base 14KB
glyphicons-halflings.png.svn-base 12KB
bugtrace.php.svn-base 9KB
glyphicons-halflings-white.png.svn-base 9KB
b2core.php.svn-base 8KB
panel.php.svn-base 8KB
default.css.svn-base 7KB
utility.php.svn-base 4KB
user_m.php.svn-base 3KB
excel.php.svn-base 3KB
__construct.php.svn-base 3KB
共 184 条
- 1
- 2
资源评论
qq_38220914
- 粉丝: 605
- 资源: 4312
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功