2015-07-17 3 views
0

Я пытаюсь сохранить данные в файл с помощью fwrite, проблема в том, что он создает второй файл с тем же именем файла, а данные сохраняются во втором файле, а не оригинал.fwrite duplicate file при сохранении на сервере

Он работает под локальным хостом Windows, Apache 2.4.10, PHP 5.6 (нет второго файла), но не на реальном сервере под управлением Linux и PHP 5.4.42.

edit.php

$(document).ready(function() { 
    var pageName = "<?php echo $pageName; ?> "; 
    $('#save').click(function(e) { 
    e.preventDefault(); 
     var content = $('#content').html(); 
      $.ajax({ 
        type: 'POST', 
        url: 'includes/readInput.php', 
       data: { 
         content: content, 
         pageName: pageName, 
        } 
        }).done(
         function(data){ 
         } 
       ); 
      });    
    }); 

readInput.php. 
// Receive post variable s from "admin/ edit.php" 
$content = $_POST['content']; 
$pageName = $_POST['pageName']; 
$dirPath= "../content/"; 
file_put_contents($dirPath.$pageName,$content); 
+0

Вы попробовали флаг FILE_APPEND для file_put_contents? –

+0

Пробовал FILE_APPEND, но не работал, все еще получая дубликат файла, но, спасибо за предложение, не думал об этом. –

+0

У меня есть небольшая догадка о том, что он ничего не дублирует, file_put_contents - по умолчанию - перезапишет файл, сделайте мне небольшую favore и скажу, какая дата/время создания для обоих файлов плюс последняя измененная дата для обоих. –

ответ

0

Если открыть файл, где будут храниться данные с «а» с флагом дописывания это приведет писать в конце содержимого файла:

$file = fopen($filename, 'a'); 
fwrite($file, 'new content'); 

Затем файл будет храниться со старым контентом и «новым контентом».

+0

Спасибо за ваше предложение, но мне нужно, чтобы весь файл был перезаписан. Я также использовал 'w' и 'w +' и 'wb' –

Смежные вопросы