السلام عليكم
إخواني أعضاء منتدى ال php:
اليوم قد توصلت لحل للمشكلة التي كنت قد سألت عنها في المشاركة:
وكان قد سأل أيضا عنها أحد الأعضاء في المشاركة:
وللأسف جميع الردود لم توصلني لحل لهذه المشكلة (ولكن جزاهم الله خيراَ الأعضاء الذين قامو بالرد)...
وفيما يلي قمت بسرد المشكلة بنظام حل المسائل الرياضية.. :)
أرجو أن تكون ذات فائدة للجميع..
المعطيات:
1) جدول في قاعدة بيانات ال character set له cp1256 وال collation له cp1256_general أو cp1256-bin (أي أنه به إمكانية إدخال البيانات العربية فمن اللممكن أن يكون utf8 أيضاً)
2) كود php يستعلم عن بيانات عربية في هذا الجدول
3) حزمة package مثبتة على النظام بها Apache,mysql,php,phpmyadmin يتم عن طريقها تنفيذ كود ال php (التي أعمل عليها هي حزمة فرنسية تسمى easyPHP 1.8) لا أريد تغييرها
4) يستطيع ال phpmyadmin قراءة البيانات العربية
المشكلة:
عند الإستعلام عن بيانات عربية بكود ال php تظهر النتائج على هيئة علامات إستفهام في أي متصفح حتى لو قمنا بتغيير ال encoding ولكن في الوقت نفسه فإن برنامج ال mysql query browser يستطيع عرض النتائج العربية بشكل سليم وأيضاً فإن ال phpmyadmin يستطيع ذلك
تعليق:
بعد بحث ومعاناة لإيجاد الحل لهذه المشكلة إكتشفت الآتي:
-بما أن ال phpmyadmin يستطيع قراءة اللغة العربية جيداً
-وبما أن ال engine وال configurations التي تعرض صفحات ال phpmyadmin = ال engine وال configurations التي تعرض صفحات كود الإستعلام عن البيانات العربية
-وبما أن كود ال phpmyadmin =! كود الإستعلام عن البيانات العربية
-إذن فالفرق يوجد فقط في الكود
-إذن فالكود الذي كتبته ينقصه بعض الأكواد التي تدعم اللغة العربية
-إذن فتتبع مسار ال link الموجود في phpmyadmin التي تعرض الجدول الذي به بيانات عربية من الممكن أن توصلنا للحل (دائماً ال link تشير إلى ملف sql.php الموجود بمجلد ال phpmyadmin مع إختلاف ال parameters)
الحمد لله تتبعت الملف وجميع الملفات المرتبط بها هذا الملف (إستغرق هذا 3 أيام :wacko: ) وإستطعت إستخلاص الكثير من الكود بدون أن أعرف ما وظيفة الكثير من الجمل فيه ولكنني إستطعت والحمد لله...
الحل:
1) ضع ملف (ملفات) ال php في المجلد المرفق..
2) إجعل ال encoding لكل الملفات cp1256 أو utf8 ـ (utf8 أفضل)..
3) ضع العبارة التالية في بداية كود الملف المراد التعامل مع البيانات العربية عن طريقه:
require_once('./libraries/common.lib.php');4) لاحظ أن جداول قاعدة البيانات يجب أن تكون ال chararcter set لها هي أحد طريقتي ال encoding
بذلك إن شاء الله ستستطيع التعامل مع اللغة العربية جيداً...
أتمنى أن تكون هذه المشاركة قد وضعت حلاً ولو أنه حل غير قوي لكل من يعاني من هذه المشكلة (أرجو من محترفي ال php أن يقوموا بإستخلاص الكود اللازم لهذه العملية فقط ودمج الملفات في ملف php واحد)...
ملاحظة: بعض المواقع التي تدعم إستضافة مواقع ال php وال mysql لا تستطيع قراءة العربي أيضاً في حين أن معظمها يستطيع.. بالمثل تستطيع أن تحل نفس المشكلة على المواقع التي لا تدعمها...
