عند العمل مع البيانات في PHP، غالبًا ما يكون من الضروري التحويل بين التنسيقات المختلفة. أحد التحويلات الشائعة هو بين السلاسل والثنائيات. سواء كان الأمر يتعلق بتخزين البيانات بشكل آمن أو تحسين الأداء، يعد فهم كيفية التحويل بين هذه التنسيقات أمرًا ضروريًا.
كيفية تحويل سلسلة إلى ثنائي، ثم تحويلها مرة أخرى إلى سلسلة في مكتبة PHP القياسية؟ هذه حاجة شائعة لتخزين البيانات ومعالجتها بشكل آمن.
على عكس بعض لغات البرمجة، لا تحتوي لغة PHP على وظيفة مضمنة لتحويل سلسلة نصية مباشرة إلى ثنائية. ومع ذلك، يمكن لمجموعة من وظائف pack () وbase_convert () تحقيق هذه الوظيفة.
لتحويل سلسلة ثنائية مرة أخرى إلى سلسلتها الأصلية، يمكننا استخدام الحزمة () وbase_convert (). تأخذ الدالة pack() سلسلة تنسيق وسلسلة من البيانات الثنائية وتجمعهما لإنشاء سلسلة. في حالتنا، سلسلة التنسيق هي "H*"، والتي تشير إلى سلسلة سداسية عشرية. تقوم الدالة base_convert() بتحويل سلسلة من قاعدة إلى أخرى. في هذه الحالة، نقوم بتحويل السلسلة السداسية العشرية إلى مجموعة أحرف ASCII:
// Convert binary into a string
$string = pack('H*', base_convert('0101001101110100011000010110001101101011', 2, 16));
لتحويل سلسلة إلى ثنائي، يمكننا استخدام unpack( ) وbase_convert(). تأخذ الدالة unpack() سلسلة تنسيق وسلسلة وتستخرج البيانات من السلسلة وفقًا للتنسيق المحدد. في حالتنا، نحدد التنسيق "H*" لاستخراج البيانات السداسية العشرية. تقوم الدالة base_convert() بتحويل سلسلة من قاعدة إلى أخرى. هنا، نقوم بتحويل سلسلة ASCII إلى سلسلة سداسية عشرية، والتي تمثل التمثيل الثنائي:
// Convert a string into binary
$binary = unpack('H*', 'Stack');
echo base_convert($binary[1], 16, 2);
لنضع كل ذلك معًا في مثال:
// Convert "Stack" to binary
$binary = unpack('H*', 'Stack');
$binaryString = base_convert($binary[1], 16, 2);
echo "Binary: $binaryString\n";
// Convert binary back to "Stack"
$asciiString = pack('H*', base_convert($binaryString, 2, 16));
echo "String: $asciiString\n";
الإخراج:
Binary: 0101001101110100011000010110001101101011 String: Stack
باستخدام هذه الوظائف، يمكننا التحويل بشكل فعال بين السلاسل النصية والثنائية في PHP. هذه المعرفة لا تقدر بثمن لتشفير البيانات ومعالجة الملفات ومختلف المهام الأخرى.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3