توليد رموز QR باستخدام PHP مع مكتبة phpqrcode
\n\nأصبحت رموز QR جزءًا لا يتجزأ من الويب الحديث. تُستخدم للانتقال السريع عبر الروابط، ونقل بيانات الاتصال، والاتصال بشبكات Wi-Fi، وغير ذلك الكثير. في هذه المقالة، سنشرح مكتبة PHP الشهيرة phpqrcode، التي تتيح توليد رموز QR بسهولة وسرعة من جانب الخادم. هذا حل مثالي لموقع تعليمي حيث يلزم عرض العمل مع رموز QR بشكل واضح.
\n\nما هي phpqrcode؟
\nphpqrcode هي مكتبة خفيفة الوزن ولكنها قوية لتوليد رموز QR باستخدام PHP الخالص. لا تتطلب تثبيت إضافات إضافية (مثل GD أو Imagick)، على الرغم من أنها تدعمها إذا كانت موجودة. تستطيع المكتبة إنشاء رموز QR بإصدارات مختلفة (من 1 إلى 40)، وبمستويات مختلفة لتصحيح الأخطاء (L, M, Q, H)، وحفظ النتيجة بصيغ PNG أو GIF أو JPEG. الميزة الرئيسية هي سهولة الاستخدام: يكفي تضمين ملف واحد واستدعاء دالة واحدة.
\n\nالتثبيت والتضمين
\nيمكن تنزيل المكتبة من المستودع الرسمي على GitHub أو SourceForge. للتثبيت، ما عليك سوى نسخ الملف phpqrcode.php إلى مشروعك. طريقة بديلة هي عبر Composer:
composer require phpqrcode/phpqrcode\n\nبعد التثبيت، قم بتضمين المكتبة في سكريبت PHP الخاص بك:
\n\n<?php\n// إذا تم التثبيت يدويًا\ninclude 'phpqrcode.php';\n\n// أو عبر Composer\nrequire 'vendor/autoload.php';\n?>\n\nمثال أساسي: توليد رمز QR
\nأبسط مثال هو إنشاء رمز QR يحتوي على سلسلة نصية أو رابط URL. لهذا، يُستخدم الأسلوب الثابت QRcode::png():
<?php\n$text = "https://pythonlib.ru";\n$filename = "qrcode.png"; // إذا لم يتم تحديده، سيتم عرض الصورة مباشرة\n$errorCorrectionLevel = 'L'; // مستوى تصحيح الأخطاء: L, M, Q, H\n$matrixPointSize = 10; // حجم النقطة (1-10)\n\n// التوليد والحفظ في ملف\nQRcode::png($text, $filename, $errorCorrectionLevel, $matrixPointSize, 2);\n\necho "تم حفظ رمز QR كـ $filename";\n?>\n\nإذا تم حذف المعامل الثاني، ستقوم المكتبة بعرض صورة PNG مباشرة في المتصفح:
\n\n<?php\nheader('Content-Type: image/png');\nQRcode::png('https://pythonlib.ru', false, 'H', 8, 2);\n?>\n\nضبط المظهر: اللون والحجم
\nرمز QR القياسي هو أبيض وأسود. لجعله ملونًا أو تغيير الخلفية، استخدم الإمكانيات المتقدمة. تتيح المكتبة تحديد الألوان عبر مصفوفة:
\n\n<?php\n$text = "مرحبًا، PythonLib!";\n$filename = "color_qr.png";\n\n// المعاملات: [R, G, B] للوحدات والخلفية\n$config = [\n 'module' => [52, 73, 94], // أزرق داكن\n 'background' => [236, 240, 241] // رمادي فاتح\n];\n\nQRcode::png($text, $filename, 'M', 10, 2, false, $config);\n?>\n\nلضبط الحجم بدقة، استخدم المعامل $matrixPointSize (من 1 إلى 10). كلما زادت القيمة، زاد حجم رمز QR. يمكن أيضًا تحديد $quietZone (الإطار الأبيض حول الرمز) - وهو المعامل الأخير في الأسلوب png().
توليد رمز QR لشبكة Wi-Fi
\nإحدى المهام الشائعة هي إنشاء رمز QR للاتصال بشبكة Wi-Fi. يجب أن يتوافق تنسيق البيانات مع المواصفات:
\n\n<?php\n$ssid = "MyHomeNetwork";\n$password = "secret123";\n$encryption = "WPA"; // WPA، WEP أو فارغ للشبكة المفتوحة\n\n$wifiString = "WIFI:T:$encryption;S:$ssid;P:$password;;";\n\nQRcode::png($wifiString, "wifi_qr.png", 'Q', 10, 2);\necho "رمز QR لشبكة Wi-Fi جاهز!";\n?>\n\nإنشاء رمز QR لـ vCard (جهات الاتصال)
\nيمكن أن يحتوي رمز QR على بطاقة عمل vCard. هذا مناسب للإضافة السريعة لجهة اتصال إلى الهاتف:
\n\n<?php\n$vcard = "BEGIN:VCARD\\n";\n$vcard .= "VERSION:3.0\\n";\n$vcard .= "FN:إيفان بيتروف\\n";\n$vcard .= "TEL:+7-123-456-78-90\\n";\n$vcard .= "EMAIL:ivan@exampl