পিএইচপি, 22 বাইট
`<?=PATH_SEPARATOR>":";`
1পাথ বিভাজকটি সেমিকোলন (ডস এবং ওএস / 2 বাদে অন্য সমস্ত ওএসের জন্য কোলন বা খালি) প্রিন্ট করে , অন্য কিছুই নয়।
এছাড়াও 22 বাইট , কিন্তু নিরাপদ নয়:
<?=strpos(__FILE__,92);
যদি ফাইল পাথটিতে ব্যাকস্ল্যাশ থাকে তবে একটি ধনাত্মক পূর্ণসংখ্যা মুদ্রণ করা হয়; অন্য কিছু না।
27 বাইট
সহ একটি নিরাপদ বিকল্প : <?=DIRECTORY_SEPARATOR>"/";প্রিন্ট 1বা কিছুই না।
একটি অদ্ভুত সন্ধান : <?=__FILE__[1]==":";( 20 বাইট ) নিরাপদ নয়, তবে ঠিক আছে। তবে যদিও __FILE__আপনি স্ট্রিং (আমি চেষ্টা করেছি var_dumpএবং gettype) হিসাবে ভান করে , এটি সূচীকরণে একটি ত্রুটি ছুঁড়েছে, যদি না আপনি এটি অন্য কোথাও অনুলিপি করেন (কনটেন্টেশনও কাজ করে) বা এটি ফাংশন প্যারামিটার হিসাবে ব্যবহার না করে।
সম্পাদনা:
<?=(__FILE__)[1]==":";(এছাড়াও 22 বাইট ) পিএইচপি 7 এ কাজ করে; তবে এটি হ'ল কারণ বন্ধনীগুলি অস্থায়ী ভেরিয়েবলের ধ্রুবকের মানটি অনুলিপি করে।
27 বাইট :<?=stripos(PHP_OS,win)===0;
পরীক্ষাগুলি যদি পূর্বনির্ধারিত PHP_OSধ্রুবক দিয়ে শুরু হয় win(কেস সংবেদনশীল; উইন্ডোজ, ডাব্লুআইএন 32, উইনএনটি, তবে সাইজিওয়ুইন বা ডারউইন নয়); 1উইন্ডোজের জন্য মুদ্রণ , অন্য কিছুই।
17/18 বাইট :
<?=strlen("
")-1;
1এটি উইন্ডোজ লাইনব্রেক (ডস, ওএস / 2 এবং আতারি টিওএস এও সংরক্ষণ করা হয়েছে - যদি আমার সন্দেহ হয় যে কেউ যে কোনওদিনও টসটির জন্য পিএইচপি সংকলন করেন) তবে অন্যটি প্রিন্ট করে 0।
আপনি ধ্রুবক পরীক্ষা করতে পারে PHP_EOL ।
আরও বিকল্প:
PHP_SHLIB_SUFFIXহয় dllWindows এ কিন্তু অগত্যা শুধুমাত্র সেখানে নেই।
php_uname()অপারেটিং সিস্টেমে আরও তথ্য দেয় এবং আরও অনেক কিছু; Windowsউইন্ডোজ জন্য শুরু হয় । উইন্ডোজের একটি ব্রাউজারে যখন কল করা
$_SERVER['HTTP_USER_AGENT']থাকে Windowsতখন তা থাকবে ।
<?=defined(PHP_WINDOWS_VERSION_BUILD);(38 বাইট) পিএইচপি> = 5.3 এ কাজ করে
উপসংহার
এটির সত্যিকারের উইন্ডোজ, এটির মতো দেখতে কিছুই নয়, এটি জানাবার একমাত্র ব্যর্থ সাফল্যটি ওএস নামের একটি চেক বলে মনে হচ্ছে। পিএইচপি php_os()জন্য: সুরক্ষার কারণে অক্ষম হতে পারে; তবে PHP_OSসম্ভবত সর্বদা পছন্দসই তথ্য থাকবে।