एक Windows मशीन पर, निम्न स्क्रिप्ट में:पीएचपी ग्लोब() कोष्ठक निर्देशिका
<?php
mkdir("c:\\[test]");
file_put_contents("c:\\[test]\\test.txt", "some content");
chdir("c:\\[test]");
echo getcwd()."\n";
var_dump(glob('*'));
?>
प्रदर्शित करता है यह:
C:\[test]
array(0) {
}
जब यह आशा की जाती है:
C:\[test]
array(1) {
[0]=>
string(8) "test.txt"
}
मैं समझता हूँ कि glob
व्यवहार करता कोष्ठक विशेष वर्ण, जबमें पायापैरामीटर।
पैटर्न *
मैचों वर्तमान कार्यशील निर्देशिका में किसी भी फाइल। हालांकि, ग्लोब() बर्ताव करता है जैसे कि यह पैटर्न c:\\[test]\\*
कोष्ठक तो पैटर्न के हिस्से के रूप में व्याख्या की जा रही है, जबकि असल में ऐसा निर्देशिका का हिस्सा हैं के साथ चलाया गया था।
glob
पैटर्न के हिस्से के रूप पथ के इलाज के लिए माना जाता है? मैं नहीं बल्कि लगता है कि यह एक प्रारंभिक बिंदु के रूप में वर्तमान निर्देशिका का उपयोग करना चाहिए, और फिर पैटर्न केवल पर कार्रवाई होगी।
(संक्षेप में प्रस्तुत करने का प्रयास): glob
समारोह में कार्य करता है जैसे कि यह एक मेल खाने वाला पैटर्न के रूप में c:\\[test]\\*
हो रही है, और या तो c:\t\*
, c:\e\*
, या c:\s\*
मिलान करने के लिए कोशिश कर रहा है। लेकिन पैटर्न वास्तव में *
है और इसे किसी भी मैच से मिलान करने की कोशिश नहीं करनी चाहिए।
मैं मैक पर इस को दोहराने नहीं कर सकते, आप जाँच कर सकते हैं निर्देशिका और फाइल वास्तव में अपने खिड़की पर ठीक से बनाया जाता है? – ajreal
क्या मैं स्पष्ट सुझाव दे सकता हूं, [dir नामों में उपयोग नहीं करें]? –
@ डैगन क्यों [] डीआईआर नामों में इस्तेमाल नहीं किया जा सकता है? – xdazz