本文整理匯總了PHP中XMLWriter::getDepth方法的典型用法代碼示例。如果您正苦於以下問題:PHP XMLWriter::getDepth方法的具體用法?PHP XMLWriter::getDepth怎麽用?PHP XMLWriter::getDepth使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類XMLWriter
的用法示例。
在下文中一共展示了XMLWriter::getDepth方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: _serialize
/**
* Utilize custom serialization for XMLWriter object, to convert object
* to SQL.
*
* @return string
*/
private function _serialize()
{
$this->setIndent(true);
$this->setIndentString(' ');
$this->startDocument('1.0', 'UTF-8');
$this->_namespaces = array();
$this->_tagStack = array();
$this->_state = array();
$this->_type = 'Tag';
$this->_expectedDepth = 0;
$this->_lastkey = array();
$lastdepth = 0;
foreach ($this->_iter = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($this->_array), \RecursiveIteratorIterator::SELF_FIRST) as $key => $values) {
$depth = $this->_iter->getDepth();
while ($depth < $this->_expectedDepth) {
// finished with this tag
$this->_finish($key, $values);
$lastdepth--;
}
if (isset($this->_lastkey[$depth]) && $key != $this->_lastkey[$depth]) {
while ($lastdepth > $depth) {
$this->_finish($key, $values);
$lastdepth--;
}
}
$this->_lastkey[$depth] = $key;
foreach ($this->_lastkey as $d => &$k) {
if ($d > $depth) {
$k = false;
}
}
$this->_lastkey = array_filter($this->_lastkey, array('Pyrus\\XMLWriter', '_filter'));
$lastdepth = $depth;
if ($this->_type !== 'Attribs') {
if ($key === '_content') {
$this->text($values);
continue;
}
if ($key === 'attribs') {
// attributes are 1 depth higher
$this->_pushState();
$this->_expectedDepth = $this->_iter->getDepth() + 1;
$this->_type = 'Attribs';
// cycle to first attribute
continue;
}
}
$next = '_handle' . $this->_type;
while ($next = $this->{$next}($key, $values)) {
}
}
while ($lastdepth) {
$this->_finish($key, $values);
$lastdepth--;
}
$this->endDocument();
return $this->flush();
}