2011-12-28 12 views
9

मैं fopen का उपयोग कर एक नई फाइल बना रहा हूँ। file_exists() समारोह:fopen फ़ाइल बनाता है, लेकिन अनुमतियों को कैसे बदला जाए?

$filename = 'user_data/10.xml'; 
$openhandle = fopen($filename, 'w+'); 

तो मैं अगर फ़ाइल का उपयोग कर बनाया गया है की जाँच करें।

समस्या यह है: फ़ाइल कुछ मालिक के साथ बनाई जा रही है, शायद फ़ोल्डर का नाम, लेकिन यह मेरा नहीं है। फ़ाइल की अनुमति केवल readable by the owner है। और चूंकि मैं मालिक नहीं हूं, इसलिए मैं फ़ाइल नहीं पढ़ सकता, या अनुमतियों को बदल नहीं सकता।

लेकिन प्रयास इसे का उपयोग बदलने के लिए हैं:

chown($filename, 'myusername'); 
chmod($filename, 777); 

मैं फ़ाइल को स्वामी और टर्मिनल का उपयोग अनुमतियों sudo का उपयोग कर बदलते कोशिश की। यह ठीक से काम किया। इसलिए मैंने shell_exec() के साथ उपरोक्त कार्यों का उपयोग करने का भी प्रयास किया ताकि यह रूट में चल सके।

लेकिन कोई भाग्य नहीं था।

हालांकि, मुझे फ़ाइल अनुमति संख्याओं के साथ अधिक अनुभव नहीं है, लेकिन चाउन कमांड भी काम नहीं कर रहा है।

तो मुझे फ़ाइल के मालिक और अनुमतियों को कैसे बदलना चाहिए ताकि मैं मालिक हूं और इसकी अन्य PHP स्क्रिप्ट्स द्वारा पठनीय और लिखने योग्य हो?

+0

जब फ़ाइल अपलोड की जाती है (किसी भी chmod से पहले), फ़ाइल पर अनुमतियां क्या हैं, user_data फ़ोल्डर पर अनुमतियां क्या हैं, और असाइन किए गए स्वामी कौन हैं? –

+0

मैं एक नई खाली फ़ाइल बनाता हूं, और उसके बाद fwrite() का उपयोग करके इसे लिखता हूं। फ़ाइल पर अनुमतियों हैं: मालिक और समूह: www-डेटा मालिक: पढ़ें समूह: दूसरों निष्पादित करें: निष्पादित user_data फ़ोल्डर पर, मैं मालिक हूँ और सभी तीन लोग पढ़ने के लिए सेट कर रहे हैं, लिखें , निष्पादित करें ... –

+0

टिमविक्रॉन्ग कहते हैं, आपको chmod कमांड में अग्रणी 0 जोड़ना चाहिए, लेकिन ऐसा भी होता है कि आपको chmod की अनुमति नहीं हो सकती है। $ Chmoded = chmod ($ filename, 0777) आज़माएं; अगर (! $ chmoded) {echo "फ़ाइल अनुमतियों को नहीं बदला जा सका";} ... भी, अगर फ़ाइल अनुमतियां 777 हैं तो उन्हें जाने की कोई आवश्यकता नहीं है। –

उत्तर

17

आप केवल निम्न पंक्ति का उपयोग कर इसे chmod करने के लिए सक्षम होना चाहिए: इससे पहले कि यह

chmod'ed कर दिया गया है

chmod($filename, 0777); 

नोट 777

इसके अलावा पहले 0 स्वामित्व में परिवर्तन नहीं करते

+0

अधिक जानकारी यहां मिल सकती है: http://php.net/manual/en/function.chmod.php –

+0

ठीक है, यह पूरी तरह से काम करता है ... बहुत बहुत धन्यवाद ...: डी –

+1

कोई समस्या नहीं! मैं खुशी से मदद कर सकता है! –

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