পিএইচপি, 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
হয় dll
Windows এ কিন্তু অগত্যা শুধুমাত্র সেখানে নেই।
php_uname()
অপারেটিং সিস্টেমে আরও তথ্য দেয় এবং আরও অনেক কিছু; Windows
উইন্ডোজ জন্য শুরু হয় । উইন্ডোজের একটি ব্রাউজারে যখন কল করা
$_SERVER['HTTP_USER_AGENT']
থাকে Windows
তখন তা থাকবে ।
<?=defined(PHP_WINDOWS_VERSION_BUILD);
(38 বাইট) পিএইচপি> = 5.3 এ কাজ করে
উপসংহার
এটির সত্যিকারের উইন্ডোজ, এটির মতো দেখতে কিছুই নয়, এটি জানাবার একমাত্র ব্যর্থ সাফল্যটি ওএস নামের একটি চেক বলে মনে হচ্ছে। পিএইচপি php_os()
জন্য: সুরক্ষার কারণে অক্ষম হতে পারে; তবে PHP_OS
সম্ভবত সর্বদা পছন্দসই তথ্য থাকবে।