本文整理汇总了PHP中XML::loadFile方法的典型用法代码示例。如果您正苦于以下问题:PHP XML::loadFile方法的具体用法?PHP XML::loadFile怎么用?PHP XML::loadFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XML
的用法示例。
在下文中一共展示了XML::loadFile方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getXML
/**
* Loads the xml file into a string and returns this string.
*
* @return XML $xml
*/
protected function getXML()
{
$instructions = $this->installation->getInstructions();
if (!isset($instructions[$this->tagName]['cdata'])) {
return false;
}
// Search the acpmenu xml-file in the package archive.
// Abort installation in case no file was found.
if (($fileIndex = $this->installation->getArchive()->getTar()->getIndexByFilename($instructions[$this->tagName]['cdata'])) === false) {
throw new SystemException("xml file '" . $instructions[$this->tagName]['cdata'] . "' not found in '" . $this->installation->getArchive()->getArchive() . "'", 13008);
}
// Extract acpmenu file and parse with SimpleXML
$xml = new XML();
$tmpFile = FileUtil::getTemporaryFilename('xml_');
try {
$this->installation->getArchive()->getTar()->extract($fileIndex, $tmpFile);
$xml->loadFile($tmpFile);
} catch (Exception $e) {
// bugfix to avoid file caching problems
try {
$this->installation->getArchive()->getTar()->extract($fileIndex, $tmpFile);
$xml->loadFile($tmpFile);
} catch (Exception $e) {
$this->installation->getArchive()->getTar()->extract($fileIndex, $tmpFile);
$xml->loadFile($tmpFile);
}
}
@unlink($tmpFile);
return $xml;
}
示例2: get
/**
* Get table
*
* <code>
* $table = Table::get('table_name');
* </code>
*
* @param array $table_name Table name
* @return mixed
*/
public static function get($table_name)
{
// Redefine vars
$table_name = (string) $table_name;
// Load table
if (file_exists(Table::$tables_dir . '/' . $table_name . '.table.xml') && is_file(Table::$tables_dir . '/' . $table_name . '.table.xml')) {
$data = array('xml_object' => XML::loadFile(Table::$tables_dir . '/' . $table_name . '.table.xml'), 'xml_filename' => Table::$tables_dir . '/' . $table_name . '.table.xml');
return $data;
} else {
return false;
}
}
示例3: __
<th><?php
echo __('Author', 'plugins');
?>
</th>
<th><?php
echo __('Version', 'plugins');
?>
</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
foreach ($plugins_to_intall as $plug) {
$plugin_xml = XML::loadFile($plug['path']);
?>
<tr>
<td>
<?php
echo $plugin_xml->plugin_name;
?>
</td>
<td class="hidden-phone">
<?php
echo $plugin_xml->plugin_description;
?>
</td>
<td>
<a href="<?php
echo $plugin_xml->plugin_author_uri;
示例4: main
/**
* Plugins admin
*/
public static function main()
{
// Get siteurl
$site_url = Option::get('siteurl');
// Get installed plugin from $plugins array
$installed_plugins = Plugin::$plugins;
// Get installed users plugins
$_users_plugins = array();
foreach (Plugin::$plugins as $plugin) {
if ($plugin['privilege'] !== 'box') {
$_users_plugins[] = $plugin['id'];
}
}
// Get plugins table
$plugins = new Table('plugins');
// Delete plugin
// -------------------------------------
if (Request::get('delete_plugin')) {
if (Security::check(Request::get('token'))) {
// Nobody cant remove box plugins
if ($installed_plugins[Text::lowercase(str_replace("Plugin", "", Request::get('delete_plugin')))]['privilege'] !== 'box') {
// Run plugin uninstaller file
$plugin_name = Request::get('delete_plugin');
if (File::exists(PLUGINS . DS . $plugin_name . DS . 'install' . DS . $plugin_name . '.uninstall.php')) {
include PLUGINS . DS . $plugin_name . DS . 'install' . DS . $plugin_name . '.uninstall.php';
}
// Clean Monstra TMP folder.
Monstra::cleanTmp();
// Increment Styles and Javascript version
Stylesheet::stylesVersionIncrement();
Javascript::javascriptVersionIncrement();
// Delete plugin form plugins table
$plugins->deleteWhere('[name="' . Request::get('delete_plugin') . '"]');
// Redirect
Request::redirect('index.php?id=plugins');
}
} else {
die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
}
}
// Install new plugin
// -------------------------------------
if (Request::get('install')) {
if (Security::check(Request::get('token'))) {
// Load plugin install xml file
$plugin_xml = XML::loadFile(PLUGINS . DS . basename(Text::lowercase(Request::get('install')), '.manifest.xml') . DS . 'install' . DS . Request::get('install'));
// Add plugin to plugins table
$plugins->insert(array('name' => basename(Request::get('install'), '.manifest.xml'), 'location' => (string) $plugin_xml->plugin_location, 'status' => (string) $plugin_xml->plugin_status, 'priority' => (int) $plugin_xml->plugin_priority));
// Clean Monstra TMP folder.
Monstra::cleanTmp();
Stylesheet::stylesVersionIncrement();
Javascript::javascriptVersionIncrement();
// Run plugin installer file
$plugin_name = str_replace(array("Plugin", ".manifest.xml"), "", Request::get('install'));
if (File::exists(PLUGINS . DS . basename(Text::lowercase(Request::get('install')), '.manifest.xml') . DS . 'install' . DS . $plugin_name . '.install.php')) {
include PLUGINS . DS . basename(Text::lowercase(Request::get('install')), '.manifest.xml') . DS . 'install' . DS . $plugin_name . '.install.php';
}
Request::redirect('index.php?id=plugins');
} else {
die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
}
}
// Delete plugin from server
// -------------------------------------
if (Request::get('delete_plugin_from_server')) {
if (Security::check(Request::get('token'))) {
// Clean Monstra TMP folder.
Monstra::cleanTmp();
Stylesheet::stylesVersionIncrement();
Javascript::javascriptVersionIncrement();
Dir::delete(PLUGINS . DS . basename(Request::get('delete_plugin_from_server'), '.manifest.xml'));
Request::redirect('index.php?id=plugins');
} else {
die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
}
}
// Upload & extract plugin archive
// -------------------------------------
if (Request::post('upload_file')) {
if (Security::check(Request::post('csrf'))) {
if ($_FILES['file']) {
if (in_array(File::ext($_FILES['file']['name']), array('zip'))) {
$tmp_dir = ROOT . DS . 'tmp' . DS . uniqid('plugin_');
$error = 'Plugin was not uploaded';
if (Dir::create($tmp_dir)) {
$file_locations = Zip::factory()->extract($_FILES['file']['tmp_name'], $tmp_dir);
if (!empty($file_locations)) {
$manifest = '';
foreach ($file_locations as $filepath) {
if (substr($filepath, -strlen('.manifest.xml')) === '.manifest.xml') {
$manifest = $filepath;
break;
}
}
if (!empty($manifest) && basename(dirname($manifest)) === 'install') {
$manifest_file = pathinfo($manifest, PATHINFO_BASENAME);
$plugin_name = str_replace('.manifest.xml', '', $manifest_file);
//.........这里部分代码省略.........