PHP में फाइल में कैसे लिखें?


108

मेरे पास एक मुक्त PHP- समर्थक सर्वर पर यह स्क्रिप्ट है:

<html>
<body>

<?php
$file = fopen("lidn.txt","a");


fclose($file);
?>

</body>
</html>

यह फ़ाइल बनाता है lidn.txt, लेकिन यह खाली है।

मैं एक फ़ाइल कैसे बना सकता हूं और उसमें कुछ लिख सकता हूं, उदाहरण के लिए लाइन "बिल्ली का पीछा चूहों"?

जवाबों:


153

आप एक उच्च-स्तरीय फ़ंक्शन का उपयोग कर सकते हैं जैसे:

file_put_contents($filename, $content);

जो बुला के समान है fopen(), fwrite()और fclose()एक फाइल करने के लिए क्रमिक लिखने के लिए डेटा।

डॉक्स: file_put_contents


3
बस एक सिडेन, file_put_contents()PHP5 में ही काम करता है। इस मामले में एक समस्या नहीं लगती है (आपका उत्तर एक्यूप्रेशर मिला, सब के बाद), लेकिन वहाँ अभी भी कुछ मेजबान हो सकता है वहाँ PHP4.x चल रहा है।
डुरथ

2
एक बहुत ही महत्वपूर्ण sidenote: file_put_contents () फोपेन () की तुलना में एक स्मृति दुःस्वप्न है। मुझे इसका उपयोग करना पसंद है लेकिन जब आप बड़ी फ़ाइलों को संभालना चाहते हैं तो डेटा को "स्ट्रीम" करने में सक्षम होना चाहिए। PHP को आंतरिक मेमोरी के रूप में बड़ी मात्रा में अंतिम फ़ाइलों की आवश्यकता होगी, इसलिए इस फ़ंक्शन का उपयोग करते समय ध्यान रखें। कम मात्रा में डेटा के लिए मैं इसे आसान उपयोग के लिए सुझाऊंगा।
जॉन

1
फिर file_put_contents ($ फ़ाइलनाम, $ other_stream) का उपयोग करें। यह stream_copy_to_stream-) का उपयोग करने के समान है, जो कि बहुत ही कुशल मेमोरी है।
सेवेजमैन

@ यह केवल PHP5 में काम करता है या यह केवल PHP5 से काम करता है? वे 2 अलग चीजें हैं।
Xsmael

2
@Xsmael 2009 के सुदूर अतीत में नहीं;) तब PHP7 वापस नहीं था। लेकिन हाँ, put_file_contents()पहले PHP5 में पेश किया गया था, और बाद के संस्करणों में भी शामिल किया गया है।
दुरथ

88

राइटराइट पर विचार करें () :

<?php
$fp = fopen('lidn.txt', 'w');
fwrite($fp, 'Cats chase mice');
fclose($fp);
?>

आप उपरोक्त कोड का उपयोग कर सकते हैं आप फ़ाइल_पुट_कंट का
अंकुर कुमार सिंह

@ सतीश ऊपर की फाइल की तरह लिखने के बाद हम फाइल को बंद किए बिना कैसे पढ़ते हैं ( fclose($fp) ), मैंने कोशिश की $fp = fopen('lidn.txt', 'w+');, $fp = fopen('lidn.txt', 'a+');लेकिन उनमें से किसी ने भी काम नहीं किया
कसुन सियामबलपिटिया


10
$text = "Cats chase mice";
$filename = "somefile.txt";
$fh = fopen($filename, "a");
fwrite($fh, $text);
fclose($fh);

तुम इस्तेमाल fwrite()


फ़ाइल के ऊपर लिखने के बाद हम फ़ाइल को बंद किए बिना कैसे पढ़ते हैं ( fclose($fh)), मैंने $fh = fopen('lidn.txt', 'w+');$ fh = fopen ('lidn.txt', 'a +') के साथ कोशिश की; `लेकिन दोनों में से किसी ने भी काम नहीं किया
कसुन सियामबलपिटिया


6

मैं अपनी वेब निर्देशिका पर फ़ाइलें लिखने के लिए निम्न कोड का उपयोग करता हूं।

write_file.html

<form action="file.php"method="post">
<textarea name="code">Code goes here</textarea>
<input type="submit"value="submit">
</form>

write_file.php

<?php
// strip slashes before putting the form data into target file
$cd = stripslashes($_POST['code']);

// Show the msg, if the code string is empty
if (empty($cd))
    echo "Nothing to write";

// if the code string is not empty then open the target file and put form data in it
else
{
    $file = fopen("demo.php", "w");
    echo fwrite($file, $cd);

    // show a success msg 
    echo "data successfully entered";
    fclose($file);
}
?>

यह एक वर्किंग स्क्रिप्ट है। प्रपत्र कार्रवाई में url और फ़ोपेन में लक्ष्य फ़ाइल को बदलना सुनिश्चित करें ()यदि आप अपनी साइट पर इसका उपयोग करना चाहते हैं, तो फ़ंक्शन ।

सौभाग्य।


1
मैंने अभी php लिखना शुरू किया है, लेकिन ऐसा लगता है कि आप केवल एक टेक्स्ट फ़ाइल नहीं लिख रहे हैं, लेकिन आप अपने सर्वर पर एक php कोड फ़ाइल लिख रहे हैं, जिसे "Demo.php" URL को संदर्भित करने के तुरंत बाद चलाया जा सकता है। कोई आपके सर्वर पर दुर्भावनापूर्ण PHP कोड लिख सकता है और तुरंत इसे निष्पादित कर सकता है, है ना? मुझे लगता है कि यह आपके अपने कोड का परीक्षण कर सकता है, लेकिन लोगों को इस विशेष कार्यान्वयन के जोखिमों के बारे में चेतावनी दी जानी चाहिए। (यह कहा जा रहा है, मुझे यह पसंद है और इसे हम खुद करेंगे)
रुफुसवीस

6

PHPआपको निम्नलिखित चरणों से गुजरने की जरूरत है ताकि आप एक फाइल लिख सकें :

  1. फ़ाइल खोलें

  2. फ़ाइल में लिखें

  3. फ़ाइल बंद करें

    $select = "data what we trying to store in a file";
    $file = fopen("/var/www/htdocs/folder/test.txt", "a");
    fwrite($file  , $select->__toString());
         fclose($file );

6

यहाँ कदम हैं:

  1. फ़ाइल खोलें
  2. फ़ाइल में लिखें
  3. फ़ाइल बंद करें

    $select = "data what we trying to store in a file";
    $file = fopen("/var/www/htdocs/folder/test.txt", "w");        
    fwrite($file, $select->__toString());
    fclose($file);

5

fwrite()तेजी से एक smidgen है और file_put_contents()वैसे भी उन तीन तरीकों के आसपास एक आवरण है, इसलिए आप ओवरहेड खो देंगे। लेख

file_put_contents (फ़ाइल, डाटा, मोड, संदर्भ):

file_put_contentsएक फ़ाइल के लिए एक स्ट्रिंग लिखता है।

यह फ़ंक्शन फ़ाइल का उपयोग करते समय इन नियमों का पालन करता है। यदि FILE_USE_INCLUDE_PATH सेट है, तो फ़ाइल नाम की प्रतिलिपि के लिए शामिल पथ की जाँच करें यदि यह मौजूद नहीं है तो फ़ाइल बनाएँ और फ़ाइल खोलें और यदि लॉक_EX सेट है और फ़ाइल FILE_APPEND सेट है, तो इसे लॉक करें। फ़ाइल के अंत में जाएँ। अन्यथा, फ़ाइल सामग्री को साफ़ करें फ़ाइल में डेटा लिखें और फ़ाइल को बंद करें और किसी भी ताले को छोड़ दें। यह फ़ंक्शन सफलता पर फ़ाइल में लिखे गए चरित्र की संख्या, या विफलता पर FALSE देता है।

fwrite (फ़ाइल, स्ट्रिंग, लंबाई):

fwriteएक खुली फ़ाइल को लिखता है । फ़ंक्शन फ़ाइल के अंत में बंद हो जाएगा या जब यह निर्दिष्ट लंबाई तक पहुंचता है, जो भी पहले आता है। यह फ़ंक्शन विफलता पर लिखित बाइट्स या FALSE की संख्या देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.