XML-файл и папка на сервере, где хранится файл, доступны для чтения и записи в среде Windows Vista, IIS 7. Вызов функции asXML возвращает это предупреждение, и файл не обновляется.

Warning: SimpleXMLElement::asXML(communities.xml) simpleelement.asxml failed to open stream: permission denied in c:\path\make_update.php.

Файл make_update.php обновляет узлы в XML.

<?php

ini_set('display_errors', 1);
error_reporting(E_ALL);

function make_update( $nodeid, $name, $top, $left, $width, $height ) {

$nodes = new SimpleXMLElement('communities.xml', null, true);

$returnArray = $nodes->xpath("//COMMUNITY[@ID='$nodeid']");  
$node = $returnArray[0]; 
$node->TOP = $top;

$nodes->asXML('communities.xml');

return $node->TOP;
}

echo make_update(trim($_REQUEST['nodeid']),trim($_REQUEST['name']),trim($_REQUEST['top']),trim($_REQUEST['left']),trim($_REQUEST['width']),trim($_REQUEST['height']));

?>
1
user823527 25 Авг 2011 в 20:14

2 ответа

Лучший ответ

Пришлось установить разрешение на папку, содержащую XML-файл, в дополнение к файлу для чтения и записи. Сделал это владельцем, системой, пользователем, iisuser.

0
user823527 27 Авг 2011 в 19:05

У меня была такая же проблема, я запускаю IIS 7 с php. У меня «Не удалось открыть ошибку stram» с SimpleXMLElement :: asXML.

Я решил проблему, предоставив доступ на запись «всем». это решение только для внутренних сайтов, потому что это рискованно.

Решение user823527 меня не сработало.

ОБНОВЛЕНИЕ: я исправил проблему, предоставив доступ на запись к IUSR и IIS_USRS.

0
rachid.elidrissi 29 Апр 2015 в 18:57