2011-11-17 13 views
7

से छोटा है मेरे पास निम्न कोड है लेकिन मैं इसे एक या दो पंक्तियों के रूप में छोटा करने की कोशिश कर रहा हूं क्योंकि मुझे यकीन है कि मेरा यदि अनियंत्रित है तो मूल्यांकन, क्या वैसे भी नीचे दिया गया कोड भी एकवचन रेखा तक छोटा किया जा सकता है?क्या यह संभव है कि "अगर फ़ाइल मौजूद है तो संलग्न करें, अन्यथा नई फ़ाइल बनाएं" इस

if(file_exists($myFile)) 
    { 
     $fh = fopen($myFile, 'a'); 
     fwrite($fh, $message."\n"); 
    } 
    else 
    { 
     $fh = fopen($myFile, 'w'); 
     fwrite($fh, $message."\n"); 
    } 
+0

इसे छोटा करने का कारण क्या है? – Marcus

+3

['fopen' के लिए PHP मैनुअल] (http://php.net/fopen) स्पष्ट रूप से' a' 'कहता है: * "केवल लेखन के लिए खोलें; फ़ाइल के अंत में फ़ाइल पॉइंटर रखें। अगर फ़ाइल नहीं है मौजूद है, इसे बनाने का प्रयास करें। "* - तो सवाल क्या है? – Gordon

उत्तर

41
if (file_exists($myFile)) { 
    $fh = fopen($myFile, 'a'); 
    fwrite($fh, $message."\n"); 
} else { 
    $fh = fopen($myFile, 'w'); 
    fwrite($fh, $message."\n"); 
} 
fclose($fh); 

== देखें

if (file_exists($myFile)) { 
    $fh = fopen($myFile, 'a'); 
} else { 
    $fh = fopen($myFile, 'w'); 
} 
fwrite($fh, $message."\n"); 
fclose($fh); 

==

$fh = fopen($myFile, (file_exists($myFile)) ? 'a' : 'w'); 
fwrite($fh, $message."\n"); 
fclose($fh); 

==

अगर यह केवल लिखने आप किसी दिए गए हैंडल पर प्रदर्शन करते हैं

==

file_put_contents($myFile, $message."\n", FILE_APPEND); 

... ज़ाहिर है, file_put_contents() केवल बेहतर है। यदि आपके पास उसी फ़ाइल हैंडल पर fwrite() पर कोई भी बाद की कॉल है, तो आप @ पेक्का के उत्तर के साथ बेहतर तरीके से जा रहे हैं।

4
$method = (file_exists($myFile)) ? 'a' : 'w'; 
$fh = fopen($myFile,$method); 
fwrite($fh, $message."\n"); 
2
$fh = file_exists($myFile) ? fopen($myFile, 'a') : fopen($myFile, 'w'); 
fwrite($fh, $message."\n"); 
+0

लेकिन क्यों? चेक पहली जगह में क्या मायने रखता है? –

+0

आपका उत्तर अधिक समझ में आता है :) – matino

16

उम्म ... क्यों? a पहले से ही आपको बॉक्स से बाहर की आवश्यकता है।

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

+0

+1 मैं वही सोच रहा था लेकिन ध्वज को याद नहीं कर सका – Sarfraz

3

fopen()। मोड a आपको बस चाहिए।

+0

क्षमा करें, मेरी गलती। संपादित – legiero

1

एपेंड मोड पहले से ही वर्णन करता है जो आप वर्णन करते हैं। fopen के लिए PHP मैनुअल पृष्ठ से:

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

2
$fh = (file_exists($myFile)) ? fopen($myFile,'a') : fopen($myFile,'w'); 
fwrite($fh, $message."\n"); 
1

php मैनुअल के अनुसार यह पर्याप्त होना चाहिए। (क्योंकि a जांच करता है कि फ़ाइल मौजूद है और यह बनाता है, तो नहीं) description of "a"

fopen($myFile, "a"); 
fwrite($fh, $message."\n"); 
+1

गायब ';' 'फॉपेन के बाद' ($ myFile, "a") ' – stealthyninja

+1

इसे ठीक किया गया। धन्यवाद – Bluewind

0

मेरा मानना ​​है कि a (संलग्न) मोड करता है कि पहले से ही ... संलग्न अगर मौजूद है, और बनाने के नए

fopen($myFile, "a"); 
0
$method = (file_exists($myFile)) ? 'a' : 'w'; 

$fh = fopen($myFile,$method); 

fwrite($fh, $message."\n"); 

यह $ myFile नहीं है निरपेक्ष/सापेक्ष पथ है ..?

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