2012-03-23 8 views
5

का उपयोग कर एक अलग निर्देशिका में फ़ाइल लिखने का प्रयास कर रहा हूं, मैं एक निर्देशिका से दूसरी निर्देशिका में एक फ़ाइल लिखने की कोशिश कर रहा हूं। उदाहरण के लिए, http://www.xxxxxxx.com/admin/upload.php से http://www.xxxxxxx.com/posts/filename.phpfopen()

मैंने पढ़ा है कि मैं HTTP पथ का उपयोग कर फ़ाइल नहीं लिख सकता, मैं स्थानीय पथ का उपयोग कैसे करूं?

$ourFileName = "http://www.xxxxxxxx.com/articles/".$thefile.".php"; 
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); 

उत्तर

8

आपको फ़ाइल सिस्टम पर फ़ाइल के पूर्ण या सापेक्ष पथ का उपयोग करना चाहिए।

<?php 

$absolute_path = '/full/path/to/filename.php'; 
$relative_path = '../posts/filename.php'; 

// use one of $absolute_path or $relative_path in fopen() 

?> 
+0

धन्यवाद, यह काम करता है। – user1142872

+0

@ user1142872 आपको इसे उत्तर के रूप में चिह्नित करना चाहिए। –

3

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

उदाहरण के लिए, /foo/x/foo/y से संबंधित पथ ../x है। जैसा कि आपने शायद पता लगाया है, डबल डॉट्स का मतलब है "ऊपर निर्देशिका"। तो, /foo/../foo/bar/foo/bar जैसा ही है। सामान्य रूप से पूर्ण पथ का उपयोग करना सुरक्षित है, क्योंकि सापेक्ष पथ प्रक्रिया वर्तमान निर्देशिका पर निर्भर हो सकता है। लेकिन आपको कभी हार्डकोड एक पूर्ण पथ - इसके बजाय इसकी गणना करना चाहिए।

तो, यह लेख/व्यवस्थापक/upload.php से खोलना चाहिए thefile.php:

// path to admin/ 
$this_dir = dirname(__FILE__); 

// admin's parent dir path can be represented by admin/.. 
$parent_dir = realpath($this_dir . '/..'); 

// concatenate the target path from the parent dir path 
$target_path = $parent_dir . '/articles/' . $theFile . '.php'; 

// open the file 
$ourFileHandle = fopen($target_path, 'w') or die("can't open file"); 

आप वास्तव में paths से परिचित हो जाना चाहिए।

+0

उन्नत जानकारी के लिए धन्यवाद! – user1142872

+0

कभी भी! कृपया [प्रश्न बंद करें] को मत भूलना (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – jpic

2

आप $ _SERVER ['DOCUMENT_ROOT'] के साथ http://www.yourdomain.com/ के स्थानीय पथ प्रतिनिधित्व का हमेशा उपयोग कर सकते हैं।

<?php 
$f = fopen($_SERVER['DOCUMENT_ROOT'] . '/posts/filename.php'); 
?> 
संबंधित मुद्दे