PHP خلف الصفحة: isset ودوال التحويل الجاهزة
يوجد كود PHP بين <?php و?>. ينفّذه الخادم قبل إرسال الصفحة، فلا يراه الزائر. وتصل قيم النموذج في $_POST بالأسماء التي أعطيناها: $_POST['number'] هو النص المكتوب. وحين تُفتح الصفحة أول مرة لا يكون قد أُرسل شيء. وحين يُضغط زر يصل اسمه أيضًا، فيكون الشرط isset($_POST['btnBin']) صحيحًا إذا ضُغط ذلك الزر فقط، ولكل زر كتلة if خاصة به. وتقرأ الكتلة العدد المكتوب وتملأ أربعة متغيرات: النص المكتوب، والنتائج الثنائية والعشرية والسداسية عشرية. وتقوم بالتحويل أربع دوال جاهزة: bindec تقرأ نصًا ثنائيًا وتعطي عددًا، وdecbin تكتب عددًا بالثنائي، وhexdec تقرأ نصًا سداسيًا عشريًا، وdechex تكتب عددًا بالسداسي عشر. وليست بين هذه الدوال دالة تنتقل من الثنائي إلى السداسي عشر مباشرة، فتمر الصفحة بالعشري: bindec أولًا ثم dechex. وتكتب الدوال الجاهزة السداسي عشر بأحرف صغيرة.
| الدالة | تقرأ | تعطي | مثال |
|---|---|---|---|
| bindec | نصًا ثنائيًا | عددًا | bindec("1101") = 13 |
| decbin | عددًا | نصًا ثنائيًا | decbin(90) = 1011010 |
| hexdec | نصًا سداسيًا عشريًا | عددًا | hexdec("3C") = 60 |
| dechex | عددًا | نصًا سداسيًا عشريًا بأحرف صغيرة | dechex(200) = c8 |
1<?php 2$_POST = ['btnBin' => 'Typed number is binary', 'number' => '1101']; // pretend the form was sent 3$typed = ""; 4$bin = ""; 5$dec = ""; 6$hex = ""; 7 8if (isset($_POST['btnBin'])) { 9 $typed = $_POST['number']; 10 $dec = bindec($typed); 11 $bin = $typed; 12 $hex = dechex($dec); 13} 14echo "$bin $dec $hex";
1101 13 d
1<?php 2$typed = ""; 3$bin = ""; 4$dec = ""; 5$hex = ""; 6 7if (isset($_POST['btnBin'])) { 8 $typed = $_POST['number']; 9 $dec = bindec($typed); 10 $bin = $typed; 11 $hex = dechex($dec); 12} 13if (isset($_POST['btnDec'])) { 14 $typed = $_POST['number']; 15 $dec = $typed; 16 $bin = decbin($dec); 17 $hex = dechex($dec); 18} 19if (isset($_POST['btnHex'])) { 20 $typed = $_POST['number']; 21 $dec = hexdec($typed); 22 $bin = decbin($dec); 23 $hex = $typed; 24} 25?>
| الزر | المكتوب | الثنائي | العشري | السداسي عشري |
|---|---|---|---|---|
| btnBin | 1101 | 1101 | 13 | d |
| btnDec | 90 | 1011010 | 90 | 5a |
| btnHex | 3C | 111100 | 60 | 3C |
توقّع على الورق النتائج الثلاث حين يكتب الزائر 200 ويضغط الزر العشري، ثم حين يكتب B4 ويضغط الزر السداسي عشري. وتحقق من كل جواب بالتحويل العكسي.