У меня есть класс, который обновляет XML-файл, однако, когда приходит время сохранить файл, я получаю сообщение об ошибке: SimpleXML-> asXML ($ filePath) не удалось открыть доступ к потоку запрещен.У меня никогда не было этой проблемы раньше, и я не могу найти много чего полезного на межсетях.
public static function CreateEntityConfig($database,$tables,$overwriteNodes = false) {
if(!empty($database) && !empty($tables)) {
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$conn) { die('Could not connect: '.mysql_error()); }
// check to see if database node exists and overwrite if $overwriteNodes set to true
// else create new database node
mysql_select_db($database);
if(self::NodeExists('database',array('name',$database))) {
if($overwriteNodes) {
self::RemoveNode('database', array('name',$database));
} else {
die($database.' node already exists');
}
} else {
//echo '<br>type='.get_class(self::$_xml);
$databaseNode = self::AddNode(self::$_xml, 'Database', array('name' => $database));
}
$tableNode = self::AddNode($databaseNode, 'Table', array('name' => $tables));
$result = mysql_query('select * from '.$tables);
if(!$result) { die('Query failed: '. mysql_error()); }
$i = 0;
while($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result, $i);
if($meta) {
self::AddNode(
$tableNode,
'Field',
array(
'name' => $meta->name,
'not_null' => $meta->not_null,
'type' => $meta->type
)
);
} else {
die('Unable to fetch meta information for '.$tables);
}
$i++;
}
mysql_free_result($result);
//if(!self::$_xml->asXML()) { die('Unable save xml to file'); }
echo self::$_xml->asXML(self::$_xmlFilePath);
} else { die('Database and Table arguments required'); }
mysql_close();
echo self::$_xmlFilePath.' successfully built.';
}
Хотя ответ Фила был не совсем верным, он помог мне найти решение, которое работало для меня.Вот объяснение того, что я сделал - посмотрите на первый ответ https://superuser.com/questions/19318/how-can-i-give-write-access-of-a-folder-to-all-users-in-linux
спасибо за любую помощь, B