简而言之,我正在将页面加载到浏览器中,并将div id=content元素的内容捕获到名为"contentOrig".的变量中。基于Javascript的编辑器加载,用户可以修改div id=content的内容。新编辑被保存到一个名为"content“的变量中。当用户单击保存图标并将contentOrig和content变量作为HTML传递给save.php时,会发出ajax请求。
在file_get_contents文件中,函数save.php在编辑原始文件之前打开它(位于同一个服务器实例的不同目录中),并将文件内容作为字符串保存到php变量($handle)中。然后在str_ireplace()上执行字符串替换函数,使用$contentOrig作为搜索字符串,$dataNew作为替换字符串,在$handle上执行。结果应该保存为$contentSave.
下面是我的代码文件,它请求并接收ajax调用。str_replace()似乎不起作用,$contentSave变量也没有被创建。
有什么想法吗?
$(document).ready(function() {
var contentOrig = jQuery.data(content, 'contentOrig', $('#content').html());
alert(contentOrig);
var file_path = $(location).attr('pathname');
bkLib.onDomLoaded(function() {
var myNicEditor =
new nicEditor({fullpanel : true, onSave : function(content, id, instance) {
$.ajax({
type : 'POST',
url : 'https://mydomain.com/admin/save.php',
data: {"data": content, "filePath" : file_path, "contentOrig" : contentOrig},
dataType: "html",
success: function(data){
alert('Are you sure you want to save this content?');}
});
} }).panelInstance('content');
});
});
save.php文件:
<?php
$site_path = "../publicSite/";
$admin_site_user = _SERVER["REMOTE_USER"];
**$dataNew** = $_POST['data'];
$pagePath = $_POST['filePath'];
**$contentOrig** = $_POST['contentOrig'];
$fileName = str_ireplace("/admin/", $site_path, $pagePath);
$handle = file_get_contents($fileName);
$handle2 = fopen($fileName, 'w+');
**$contentSave = str_ireplace($contentOrig, $dataNew, $handle);**
$logHandle = fopen('testsave.html','w');
if($handle2) {
if (!fwrite($handle2, $contentSave));
fclose($handle2);
}
发布于 2013-05-09 09:12:45
data: {"data": content, "filePath" : file_path, "contentOrig" : contentOrig},
试一试
data: {data: content, filePath : file_path, contentOrig : contentOrig},
发布于 2013-05-10 11:43:52
您是否尝试过$fileName = str_ireplace("\admin\“、$site_path、$pagePath);
我坐在离你两排远的地方,你应该走过去的。
https://stackoverflow.com/questions/16451975
复制相似问题