本文整理汇总了PHP中SPLang::varName方法的典型用法代码示例。如果您正苦于以下问题:PHP SPLang::varName方法的具体用法?PHP SPLang::varName怎么用?PHP SPLang::varName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SPLang
的用法示例。
在下文中一共展示了SPLang::varName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createNode
/**
* @param $data
* @param $parent
* @param $name
* @return unknown_type
*/
private function createNode($data, &$parent, $name = null)
{
if ($name) {
$e = $this->_xml->createElement($this->elName($name));
} else {
$e = $parent;
}
/* not complex data - without attributes aso */
if (is_array($data) && !isset($data['_complex'])) {
foreach ($data as $label => $values) {
/* half-complex data - just to define custom child tag */
if (is_array($values) && isset($values['_value'])) {
if (isset($values['_class']) || isset($values['_id'])) {
$label = isset($values['_tag']) ? $values['_tag'] : $label;
$attr = array();
if (isset($values['_class'])) {
$attr['class'] = $values['_class'];
}
if (isset($values['_id'])) {
$attr['id'] = $values['_id'];
}
$values = array('_complex' => 1, '_data' => $values['_value'], '_attributes' => $attr);
} else {
$label = isset($values['_tag']) ? $values['_tag'] : $label;
$values = $values['_value'];
}
}
if (!$label || is_integer($label)) {
$label = SPLang::singular($name);
}
$this->createNode($values, $e, $label);
}
} elseif (is_array($data) && isset($data['_complex'])) {
if (isset($data['_xml']) && $data['_xml']) {
$_t = new DOMDocument();
$_t->formatOutput = true;
/* html entities to compatible XML within textareas */
$data['_data'] = preg_replace_callback('/(<textarea.*>)(.*)(<\\/textarea>)/s', 'SPTemplateXSLT::entities', $data['_data']);
try {
/* im trying to catch this damn error already :( */
/* assuming the XML-Structure was ok */
if (@$_t->loadXML('<span>' . $data['_data'] . '</span>')) {
$nodes = $_t->firstChild->childNodes;
} elseif (class_exists('tidy') && @$_t->loadXML('<span>' . $this->repairHtml($data['_data']) . '</span>')) {
$nodes = $_t->firstChild->childNodes;
} else {
/* pass as escaped html text to the template */
$data['_attributes']['escaped'] = 'true';
if (!@$_t->loadXML('<span>' . htmlentities($data['_data']) . '</span>')) {
/* in case even this failed - pass as CDATA section */
$e->appendChild($this->_xml->createCDATASection($data['_data']));
$nodes = null;
} else {
$nodes = $_t->firstChild->childNodes;
}
}
} catch (DOMException $x) {
Sobi::Error('template', $x->getMessage(), SPC::WARNING, 0, __LINE__, __FILE__);
}
if (count($nodes)) {
foreach ($nodes as $node) {
if ($node instanceof DOMNode) {
$node = $this->_xml->importNode($node, true);
$e->appendChild($node);
} else {
Sobi::Error('template', 'Cannot parse data', SPC::WARNING, 0, __LINE__, __FILE__);
}
}
}
} elseif (isset($data['_cdata']) && $data['_cdata']) {
$e->appendChild($this->_xml->createCDATASection($data['_data']));
} elseif (isset($data['_data']) && is_array($data['_data'])) {
$this->createNode($data['_data'], $e);
} elseif (isset($data['_data'])) {
//$data[ '_attributes' ][ 'escaped' ] = 'true';
$e->appendChild($this->_xml->createTextNode($data['_data']));
}
if (isset($data['_attributes']) && is_array($data['_attributes']) && count($data['_attributes'])) {
foreach ($data['_attributes'] as $an => $av) {
$an = SPLang::varName($an);
// legacy for 1.0
// data- is allowed html5 attribute but data_ will not be valid
if (strstr($an, '-') && !strstr($an, 'data-')) {
$a = $this->_xml->createAttribute(str_replace('-', '_', $an));
$a->appendChild($this->_xml->createTextNode($av));
$e->appendChild($a);
}
$a = $this->_xml->createAttribute($an);
$a->appendChild($this->_xml->createTextNode($av));
$e->appendChild($a);
}
}
} elseif ($name) {
$e = $this->_xml->createElement($this->elName($name), SPLang::entities($data, true));
//.........这里部分代码省略.........
示例2: importData
protected function importData($node, $data, $name)
{
$root = $this->_xml->createElement($name);
if (isset($data['_data']) && is_array($data['_data'])) {
foreach ($data['_data'] as $index => $value) {
if (is_array($value)) {
$this->importData($root, $value, $index);
} else {
$child = $this->_xml->createElement($index, $value);
$root->appendChild($child);
}
}
} elseif (!isset($data['_data']) && is_array($data) && count($data)) {
foreach ($data as $i => $v) {
if (is_numeric($i)) {
$i = SPLang::singular($name);
}
if (is_array($v)) {
$this->importData($root, $v, $i);
} else {
$root->appendChild($this->_xml->createElement($i, $v));
}
}
} elseif (isset($data['_data'])) {
$root->nodeValue = $data['_data'];
}
if (isset($data['_attributes']) && $data['_attributes']) {
foreach ($data['_attributes'] as $i => $v) {
$a = $this->_xml->createAttribute(SPLang::varName($i));
$a->appendChild($this->_xml->createTextNode($v));
$root->appendChild($a);
}
}
$node->appendChild($root);
}