【发布时间】:2011-08-26 16:18:13
【问题描述】:
尝试使用 asXML() 更新 XML 文件时出现错误。该脚本使用 SimpleXMLElement 加载 xml 文件并更改数据。
错误似乎与权限有关。文件夹和文件有读写权限。
Warning: SimpleXMLElement::asXML(communities.xml) simpleelement.asxml failed to open stream: permission denied in c:\path\make_update.php.
PHP 脚本
<?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']));
?>
在其他脚本中,我使用 DOMDocument 加载 xml 文件并使用 $dom->save('file.xml'); 保存。 SimpleXMLELement 和 DOMDOcument 之间或 asXML() 和 save() 之间有区别吗?
更新 1
通过 ajax 从动态创建的 div 中调用的 javascript 调用 php 脚本。如果页面中的 div 不是静态的,是否会导致权限问题?
更新 2
有关如何调用此脚本的更多详细信息...我有可拖动的 div。当拖动停止时,我调用一个进行 ajax 调用的 javascript 函数。这是此脚本的行为与没有任何权限问题的其他行为之间的一个重要区别。在这种结构中,PHP 脚本的权限是否与 HTML 页面中用户定义的函数调用时不同?
$('#dragdiv').draggable({ stop: function(event, ui) { update_div($nodeid) } });
由于有几个php脚本没有那个权限问题,所以必须有一个链接可以从可拖动函数中调用脚本。
【问题讨论】:
标签: php xml simplexml domdocument