2011-09-26 11 views
29

मैंने फॉपेन का उपयोग करने की कोशिश की, लेकिन मैं केवल फाइल के अंत में सामग्री को जोड़ने में कामयाब रहा। PHP में नई सामग्री के साथ सभी सामग्री को ओवरराइट करना संभव है?मैं PHP में नई सामग्री के साथ फ़ाइल सामग्री कैसे ओवरराइट कर सकता हूं?

+0

लगता है कि आपने दुर्घटना पर 'एक' मोड का उपयोग निकालें आदेश धारण करने के लिए बस है। सुनिश्चित करें कि आप 'डब्ल्यू' मोड का उपयोग करें: * केवल लेखन के लिए खोलें; फ़ाइल की शुरुआत में फ़ाइल पॉइंटर रखें और फ़ाइल को शून्य लंबाई में छोटा करें। अगर फ़ाइल मौजूद नहीं है, तो इसे बनाने का प्रयास करें। * – animuson

उत्तर

56

उपयोग file_put_contents()

file_put_contents('file.txt', 'bar'); 
echo file_get_contents('file.txt'); // bar 
file_put_contents('file.txt', 'foo'); 
echo file_get_contents('file.txt'); // foo 

वैकल्पिक रूप से, अगर आप fopen() के साथ फंस रहे हैं आप w या w+ मोड का उपयोग कर सकते हैं:

'w' केवल लिखने के लिए ओपन ; फ़ाइल की शुरुआत में फ़ाइल पॉइंटर रखें और फ़ाइल को शून्य लंबाई में छोटा करें। अगर फ़ाइल मौजूद नहीं है, तो इसे बनाने का प्रयास करें।

'w +' पढ़ने और लिखने के लिए खुला; फ़ाइल की शुरुआत में फ़ाइल पॉइंटर रखें और फ़ाइल को शून्य लंबाई में छोटा करें। अगर फ़ाइल मौजूद नहीं है, तो इसे बनाने का प्रयास करें।

+5

'fopen' कई मामलों में सही उपकरण है। 'file_put_contents' और' file_get_contents' को अक्सर बड़े तारों के लिए दुरुपयोग किया जाता है, जो प्रदर्शन को नुकसान पहुंचाता है। –

+6

file_put_contents मेरे लिए मौजूदा सामग्री को ओवरराइट नहीं करता है, यह सिर्फ इसे अंत में जोड़ता है। – dlofrodloh

1
$fname = "database.php"; 
$fhandle = fopen($fname,"r"); 
$content = fread($fhandle,filesize($fname)); 
$content = str_replace("192.168.1.198", "localhost", $content); 

$fhandle = fopen($fname,"w"); 
fwrite($fhandle,$content); 
fclose($fhandle); 
+5

हालांकि यह सवाल का जवाब दे सकता है, यह कोड बेहतर बनाने के बारे में कुछ स्पष्टीकरण प्रदान करना बेहतर है। – vard

1

वैकल्पिक रूप से यदि आप अपने सर्वर का पूरा नियंत्रण है, क्यों नहीं "गारंटी" आपरेशन इसके चारों ओर से पहले फ़ाइल को हटाने के द्वारा फेरबदल?

$wait=exec('rm -r -f myfile.txt'); 
file_put_contents('myfile.txt','new content'); 

$ यहाँ जब तक प्रतीक्षा करें यह किया जाता है

संबंधित मुद्दे

 संबंधित मुद्दे