本文整理汇总了PHP中XMLDBTable::arr2XMLDBTable方法的典型用法代码示例。如果您正苦于以下问题:PHP XMLDBTable::arr2XMLDBTable方法的具体用法?PHP XMLDBTable::arr2XMLDBTable怎么用?PHP XMLDBTable::arr2XMLDBTable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLDBTable
的用法示例。
在下文中一共展示了XMLDBTable::arr2XMLDBTable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: trim
/**
* Load data from XML to the structure
*/
function arr2XMLDBStructure($xmlarr)
{
global $CFG;
$result = true;
/// Debug the structure
/// traverse_xmlize($xmlarr); //Debug
/// print_object ($GLOBALS['traverse_array']); //Debug
/// $GLOBALS['traverse_array']=""; //Debug
/// Process structure attributes (path, comment and version)
if (isset($xmlarr['XMLDB']['@']['PATH'])) {
$this->path = trim($xmlarr['XMLDB']['@']['PATH']);
} else {
$this->errormsg = 'Missing PATH attribute';
xmldb_dbg($this->errormsg);
$result = false;
}
if (isset($xmlarr['XMLDB']['@']['VERSION'])) {
$this->version = trim($xmlarr['XMLDB']['@']['VERSION']);
} else {
$this->errormsg = 'Missing VERSION attribute';
xmldb_dbg($this->errormsg);
$result = false;
}
if (isset($xmlarr['XMLDB']['@']['COMMENT'])) {
$this->comment = trim($xmlarr['XMLDB']['@']['COMMENT']);
} else {
if (!empty($CFG->xmldbdisablecommentchecking)) {
$this->comment = '';
} else {
$this->errormsg = 'Missing COMMENT attribute';
xmldb_dbg($this->errormsg);
$result = false;
}
}
/// Iterate over tables
if (isset($xmlarr['XMLDB']['#']['TABLES']['0']['#']['TABLE'])) {
foreach ($xmlarr['XMLDB']['#']['TABLES']['0']['#']['TABLE'] as $xmltable) {
if (!$result) {
//Skip on error
continue;
}
$name = trim($xmltable['@']['NAME']);
$table = new XMLDBTable($name);
$table->arr2XMLDBTable($xmltable);
$this->tables[] = $table;
if (!$table->isLoaded()) {
$this->errormsg = 'Problem loading table ' . $name;
xmldb_dbg($this->errormsg);
$result = false;
}
}
} else {
$this->errormsg = 'Missing TABLES section';
xmldb_dbg($this->errormsg);
$result = false;
}
/// Perform some general checks over tables
if ($result && $this->tables) {
/// Check tables names are ok (lowercase, a-z _-)
if (!$this->checkNameValues($this->tables)) {
$this->errormsg = 'Some TABLES name values are incorrect';
xmldb_dbg($this->errormsg);
$result = false;
}
/// Check previous & next are ok (duplicates and existing tables)
if ($result && !$this->checkPreviousNextValues($this->tables)) {
$this->errormsg = 'Some TABLES previous/next values are incorrect';
xmldb_dbg($this->errormsg);
$result = false;
}
/// Order tables
if ($result && !$this->orderTables($this->tables)) {
$this->errormsg = 'Error ordering the tables';
xmldb_dbg($this->errormsg);
$result = false;
}
}
/// Iterate over statements
if (isset($xmlarr['XMLDB']['#']['STATEMENTS']['0']['#']['STATEMENT'])) {
foreach ($xmlarr['XMLDB']['#']['STATEMENTS']['0']['#']['STATEMENT'] as $xmlstatement) {
if (!$result) {
//Skip on error
continue;
}
$name = trim($xmlstatement['@']['NAME']);
$statement = new XMLDBStatement($name);
$statement->arr2XMLDBStatement($xmlstatement);
$this->statements[] = $statement;
if (!$statement->isLoaded()) {
$this->errormsg = 'Problem loading statement ' . $name;
xmldb_dbg($this->errormsg);
$result = false;
}
}
}
/// Perform some general checks over statements
if ($result && $this->statements) {
//.........这里部分代码省略.........