"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحويل السلاسل إلى ثنائي والعودة في PHP؟

كيفية تحويل السلاسل إلى ثنائي والعودة في PHP؟

تم النشر بتاريخ 2024-11-08
تصفح:387

How to Convert Strings to Binary and Back in PHP?

تحويل الثنائيات والسلاسل في PHP: دليل شامل

عند العمل مع البيانات في 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