PHP — सिर्फ वेब के लिए नहीं है
\n\nजब भी 'PHP' का नाम आता है, ज़्यादातर लोगों को वेबसाइट, ऑनलाइन शॉपिंग कार्ट या WordPress बैकएंड याद आता है। यह समझ में आता है क्योंकि यह भाषा वेब के लिए बनी थी। लेकिन क्या आप जानते हैं कि PHP उन कामों को भी बखूबी कर सकता है जो आमतौर पर Python, Bash या Go को दिए जाते हैं? हम बात कर रहे हैं PHP में क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट की — ऐसे टूल बनाना जो Windows, Linux और macOS पर बिना कोड बदले चलें।
\n\nइस लेख में हम फॉर्म बनाना नहीं सिखाएंगे। हम दिखाएंगे कि कैसे एक कंसोल फ़ाइल मैनेजर, लॉग पार्सर और फ़ोल्डर मॉनिटरिंग सिस्टम लिखें — और यह सब सिर्फ PHP में, बिना किसी वेब सर्वर के। आप सीखेंगे कि अलग-अलग OS की समस्याओं से कैसे बचें और ऐसा कोड लिखें जो हर जगह एक जैसा चले।
\n\nतैयार हैं? तो टर्मिनल खोलें और PHP की अद्भुत क्षमताओं को देखने के लिए तैयार हो जाएं।
\n\nPHP क्यों क्रॉस-प्लेटफ़ॉर्म कामों के लिए? तीन पक्के कारण
\n\nकोड में कूदने से पहले, समझते हैं कि desktop और server यूटिलिटी के लिए PHP क्यों इस्तेमाल करें। Python के पास Django और Flask है, Node.js के पास Express। तो PHP क्यों?
\n\n- \n
- हर जगह उपलब्ध। PHP लगभग हर shared होस्टिंग और दुनिया के 80% सर्वर पर इंस्टॉल है। अगर आप एडमिन टूल बना रहे हैं, तो संभावना है कि टार्गेट मशीन पर PHP पहले से मौजूद है। अलग रनटाइम इंस्टॉल करने की ज़रूरत नहीं। \n
- वेब डेवलपर्स के लिए आसान। आपको सिंटैक्स, स्ट्रिंग और ऐरे फंक्शन पहले से आते हैं। सर्वर पर रूटीन काम ऑटोमेट करने के लिए नई भाषा सीखने की ज़रूरत नहीं। \n
- शानदार स्टैंडर्ड लाइब्रेरी। PHP में फ़ाइलों, प्रोसेस, नेटवर्क सॉकेट और zip आर्काइव के लिए सब कुछ है।
parallelयाpthreadsजैसे PECL एक्सटेंशन मल्टीथ्रेडिंग जोड़ते हैं। \n
बेशक, PHP GUI एप्लिकेशन के लिए परफेक्ट नहीं है (हालांकि PHP-GTK मौजूद है)। लेकिन कंसोल यूटिलिटी और डेमॉन के लिए — यह एक परिपक्व और स्थिर टूल है। आइए देखें कि सही कोड कैसे लिखें।
\n\nक्रॉस-प्लेटफ़ॉर्म PHP कोड की बुनियाद
\n\nसबसे पहले याद रखें: पाथ सेपरेटर। Linux पर / है, Windows पर \\। PHP में DIRECTORY_SEPARATOR कॉन्स्टेंट है, लेकिन / का इस्तेमाल और भी आसान है — Windows PHP 7+ से इसे समझता है।
पाथ के साथ सही काम
\n\n<?php\n// बुरा — हार्डकोडेड स्लैश\n$path = '/var/log/errors.log'; // Windows पर फेल होगा\n\n// अच्छा — DIRECTORY_SEPARATOR का उपयोग\n$path = 'var' . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . 'errors.log';\n\n// बेहतरीन — / और realpath() का उपयोग\n$path = __DIR__ . '/logs/errors.log';\necho $path; // दोनों OS पर काम करता है\n?>\n\n\nदूसरा महत्वपूर्ण बिंदु — एन्कोडिंग। Windows पर कंसोल अक्सर CP866 में काम करता है, जबकि PHP स्क्रिप्ट UTF-8 में। Windows पर हिंदी/किरिलिक आउटपुट के लिए mb_convert_encoding() फंक्शन या स्क्रिप्ट की शुरुआत में chcp 65001 का उपयोग करें।
उदाहरण: क्रॉस-प्लेटफ़ॉर्म फ़ाइल रीडिंग
\n\n<?php\nfunction readLogFile(string $filename): string {\n // फ़ाइल मौजूद है या नहीं जांचें\n if (!file_exists($filename)) {\n throw new RuntimeException("फ़ाइल $filename नहीं मिली");\n }\n \n // कंटेंट पढ़ें\n $content = file_get_contents($filename);\n \n // OS पहचानें और आउटपुट के लिए एन्कोडिंग बदलें\n if (PHP_OS_FAMILY === 'Windows') {\n $content = mb_convert_encoding($content, 'CP866', 'UTF-8');\n }\n \n return $content;\n}\n\necho readLogFile('logs/app.log');\n?>\n\n\nअसली यूटिलिटी बनाएं: फ़ोल्डर में बदलाव की निगरानी
\n\nचलिए एक उपयोगी चीज़ लिखते हैं — एक स्क्रिप्ट जो फ़ोल्डर पर नज़र रखे और बदलाव दिखाए।