شباب الموقع شبه خلص المشكله فيه اخطاء ف الide
نقفل الايديتور مؤقتا وننشر بكره ونطور فيه مع الوقت ولا تستنوا اخلص الموقع كامل وانشره ؟
حابب اسمع رأي كل واحد خاص 🫶
@Abdo_1
نقفل الايديتور مؤقتا وننشر بكره ونطور فيه مع الوقت ولا تستنوا اخلص الموقع كامل وانشره ؟
حابب اسمع رأي كل واحد خاص 🫶
@Abdo_1
❤7🔥1
سلام عليكم ازيكم ي شباب عاملين ايه ♥️
انا كل ما بحاول اعمل مشروع للكورس بكسل ف النص
ف هكمل باذن الله شرح ولحين ارجع اكمل مشاريع الكورس هنشرها وقت ما تكمل
انا كل ما بحاول اعمل مشروع للكورس بكسل ف النص
ف هكمل باذن الله شرح ولحين ارجع اكمل مشاريع الكورس هنشرها وقت ما تكمل
هيبقا فيه انتظام ب اذن الله في تنزيل الدروس
يومين ف الاسبوع
الخميس والاتنين باذن الله
❤5
سلسلة برمجة بوتات تيليجرام pinned «سلام عليكم ازيكم ي شباب عاملين ايه ♥️ انا كل ما بحاول اعمل مشروع للكورس بكسل ف النص ف هكمل باذن الله شرح ولحين ارجع اكمل مشاريع الكورس هنشرها وقت ما تكمل هيبقا فيه انتظام ب اذن الله في تنزيل الدروس يومين ف الاسبوع الخميس والاتنين باذن الله»
#PHP_8 الويبهوك (Webhook) .. 🔗
طيب، احنا فعلاً كتبنا كود البوت بلغة PHP، ورفعناه على الاستضافة، والكود صح.. تروح تفتح تليجرام وتكلم البوت، تلاقيه مالوش أي رد فعل ومابيردش نهائياً!
إيه اللي حصل؟ 🤔
لو فكرت فيها ثواني هتعرف المشكلة بسهولة.. الكود بتاعك قاعد في أمان الله على سيرفرك، وتليجرام ده سيرفر تاني في مكان تاني خالص. هل تليجرام هيعرف لوحده تلقائياً إن الملف اللي انت رفعته ده هو اللي بيشغل البوت الفلاني؟
أكيد لأ! فيه فجوة وانقطاع في التواصل بينهم.
عشان نحل المشكلة دي، المبرمجين عملوا طريقتين:
----------
إيه هو الويبهوك ده وبيشتغل إزاي؟
ببساطة شديدة، الويبهوك ده عامل زي إنك تروح لشركة شحن (اللي هي تليجرام) وتقولهم:
يعني بدل ما سيرفرك يفضل كل شوية يسأل تليجرام "ها، فيه رسايل جديدة؟".. لأ، تليجرام هو اللي بيبعتلك إشعار فوري وتلقائي أول ما يحصل أي حاجة في البوت.
----------
إزاي نربط الكود بتليجرام عملياً؟ 🛠
الموضوع أسهل مما تتخيل، محتاج حاجتين بس:
1- توكن البوت بتاعك (اللي جبناه من BotFather)
2- رابط الملف اللي رفعته على الاستضافة، ولازم يبدأ بـ https يعني يكون آمن
بعدها بتفتح المتصفح وبتكتب الرابط ده وبتعدل عليه بياناتك:
▪️ شيل
مثال حقيقي بيبقى شكله كده:
بعد ما تكتب الرابط في المتصفح وتدوس Enter، هتظهرلك رسالة فيها:
لو ظهرت كده، مبروك عليك 🎉 البوت اتربط بنجاح وبقى شغال وجاهز للرد.
----------
عشان الصورة تكتمل في دماغك، دي الدايرة اللي بتحصل في الخلفية كل ما حد يكلم البوت:
وكل المعالجة دي بتنتهي في أجزاء من الثانية! والمستخدم بيحس إن البوت بيرد في نفس اللحظة.
وبكده البوت بتاعك بقى شغال بشكل كامل، ومعاك المفتاح اللي بيحرك أي بوت 🔑
أشوفكم في درس جديد ♥️
فاكرين في الدروس الأولى لما اتكلمنا عن السيرفرات والاستضافات؟ وقلنا إن دي عبارة عن أجهزة كمبيوتر قوية شغالة 24 ساعة مابتفصلش، عشان نشغل عليها الأكواد بتاعتنا وتفضل متاحة في أي وقت.
طيب، احنا فعلاً كتبنا كود البوت بلغة PHP، ورفعناه على الاستضافة، والكود صح.. تروح تفتح تليجرام وتكلم البوت، تلاقيه مالوش أي رد فعل ومابيردش نهائياً!
إيه اللي حصل؟ 🤔
لو فكرت فيها ثواني هتعرف المشكلة بسهولة.. الكود بتاعك قاعد في أمان الله على سيرفرك، وتليجرام ده سيرفر تاني في مكان تاني خالص. هل تليجرام هيعرف لوحده تلقائياً إن الملف اللي انت رفعته ده هو اللي بيشغل البوت الفلاني؟
أكيد لأ! فيه فجوة وانقطاع في التواصل بينهم.
عشان نحل المشكلة دي، المبرمجين عملوا طريقتين:
● طريقة اسمها البولينج (Polling) وهنبقى ناخدها في درس سريع لوحدها
● وطريقة تانية وأسرع وأقوى وهي شرح درس النهارده: الويبهوك (Webhook)
----------
إيه هو الويبهوك ده وبيشتغل إزاي؟
ببساطة شديدة، الويبهوك ده عامل زي إنك تروح لشركة شحن (اللي هي تليجرام) وتقولهم:
بصوا يا جماعة، أنا صاحب البوت ده، وده عنواني على الإنترنت. أي مستخدم يدخل البوت، يبعت رسالة، يدوس على زرار، أو يعمل أي حاجة.. خدوا كل المعلومات دي واسم المستخدم ويوزره والرسالة اللي كتبها وابعتوها على عنواني فوراً في نفس اللحظة!
يعني بدل ما سيرفرك يفضل كل شوية يسأل تليجرام "ها، فيه رسايل جديدة؟".. لأ، تليجرام هو اللي بيبعتلك إشعار فوري وتلقائي أول ما يحصل أي حاجة في البوت.
----------
إزاي نربط الكود بتليجرام عملياً؟ 🛠
الموضوع أسهل مما تتخيل، محتاج حاجتين بس:
1- توكن البوت بتاعك (اللي جبناه من BotFather)
2- رابط الملف اللي رفعته على الاستضافة، ولازم يبدأ بـ https يعني يكون آمن
بعدها بتفتح المتصفح وبتكتب الرابط ده وبتعدل عليه بياناتك:
https://api.telegram.org/bot[TOKEN]/setWebhook?url=[URL]
▪️ شيل
[TOKEN] وحط مكانها توكن بوتك الحقيقي ▪️ شيل [URL] وحط مكانها رابط ملف الـ PHP بتاعك كامل على الاستضافةمثال حقيقي بيبقى شكله كده:
https://api.telegram.org/bot123456:ABC-DEF/setWebhook?url=https://domain.com/bot.php
بعد ما تكتب الرابط في المتصفح وتدوس Enter، هتظهرلك رسالة فيها:
{"ok":true,"result":true,"description":"Webhook was set"}لو ظهرت كده، مبروك عليك 🎉 البوت اتربط بنجاح وبقى شغال وجاهز للرد.
----------
عشان الصورة تكتمل في دماغك، دي الدايرة اللي بتحصل في الخلفية كل ما حد يكلم البوت:
1- المستخدم يبعت رسالة للبوت في تطبيق تليجرام
2- تليجرام يبعت الرسالة فوراً للملف بتاعك على الاستضافة (بفضل الويبهوك)
3- الملف بتاعك يشوف المستخدم بعت إيه، ويترجم الكود، ويرد حسب ما انت مبرمجه
4- الملف يبعت الرد لتليجرام، وتليجرام يبعته فوراً للمستخدم
وكل المعالجة دي بتنتهي في أجزاء من الثانية! والمستخدم بيحس إن البوت بيرد في نفس اللحظة.
وبكده البوت بتاعك بقى شغال بشكل كامل، ومعاك المفتاح اللي بيحرك أي بوت 🔑
أشوفكم في درس جديد ♥️
❤5🔥3👎1👏1
<?php
// دالة الـ bot اللي بنبعت بيها الأوامر لتيليجرام
function bot($method, $data) {
$url = "https://api.telegram.org/bot" . "YOUR_TOKEN" . "/" . $method;
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
// استقبال البيانات من تيليجرام
$update = json_decode(file_get_contents('php://input'));
$textbot = $update->message->text;
$id = $update->message->chat->id;
// هنا عملنا متغير العداد وثبتنا قيمته في البداية بصفر
$counter = 0;
// لو المستخدم بعت كلمة "ذكر"
if ($textbot == "ذكر") {
$counter = $counter + 1; // بنزود العداد واحد
bot('sendmessage', [
'chat_id' => $id,
'text' => "عدد مرات الذكر الحالية: " . $counter
]);
}
كود عداد الحسنات المستخدم ف الشرح ☟:
❤4
سلسلة برمجة بوتات تيليجرام
<?php // دالة الـ bot اللي بنبعت بيها الأوامر لتيليجرام function bot($method, $data) { $url = "https://api.telegram.org/bot" . "YOUR_TOKEN" . "/" . $method; $options = array( 'http' => array( 'header' => "Content-type: application/x…
#PHP_9
كيف يتعامل السيرفر/الاستضافه مع الكود اللي كتبته..
تخيل معايا إنك حبيت تعمل بوت بسيط جداً "بوت عداد الأذكار"، فكرته إن المستخدم كل ما يضغط على زر، البوت يزود العداد ويقوله عدد مرات الذكر (1، 2، 3.. وهكذا).
لو فكرنا نكتب الكود ده باللي اتعلمناه قبل كده، تفتكر الكود هيكون إزاي؟ تعالوا نشوف:
انت كتبت الكود ده، ورفعته على الاستضافة، وفعلت الويبهوك وجريت عشان تجربه..
كتبت للبوت "ذكر"، راح البوت رد عليك وقال:
تبتسم كدا وتقول تمام 🤓، تكتب "ذكر" تاني عشان يبقوا 2.. تلاقي البوت رد عليك وقال برضه:
دورة حياة ملف الـ PHP مع الويبهوك ⏳
السبب يرجع لنظام الـ الويبهوك (Webhook) اللي شرحناه الدرس اللي فات، ولطريقة تعامل السيرفر مع لغة PHP.
لازم تفهم وتستوعب جداً إن ملف الـ PHP المرفوع على الاستضافة مش بيفضل شغال في الخلفية وعمال بيفكر ومستني الرسايل.. لأ! الملف ده بيكون "مغلق تماماً"، ومفيش أي حاجة محجوزة ليه في الذاكرة المؤقتة (الرام).
الدايرة بتمشي بالترتيب ده بالظبط:
عشان كدا في المرة الثانية لما كتبت "ذكر".. الملف صحي من النوم وبدأ من الصفر تماماً، ولقى السطر المكتوب فيه
طيب إيه الحل مع المشكلة الكبيرة دي؟
في عالم البرمجة، عندنا طريقين عشان نحل المعضلة دي:
الطريقة الأولى: نخلي الملف شغال علطول وميقفلش وميفصلش
- وده نظام اسمه البولينج (Polling)، وفيه بنجبر الكود إنه يفضل شغال بشكل دائم ومستمر في الخلفية جوه السيرفر، وبكدا المتغيرات بتفضل عايشة جوه الرام ومبتتمسحش، وده ليه ميزات وعيوب هنعرفها في وقتها.
الطريقة الثانية: التخزين الدائم 📦
- بما إن الذاكرة المؤقتة (الرام) بتموت وتمشي كل ما الملف يقفل، فالحل الذكي إننا ناخد القيمة دي (سواء كانت العداد، أو فلوس المستخدم) وقبل ما الملف يقفل ويخلص شغل، نقوم "كاتبينها ومخيبنها" في مخزن خارجي دائم على السيرفر.
وأول ما الملف يصحى من النوم في المرة اللي بعدها، يروح يفتح المخزن ده، ويقرأ القيمة اللي جواه، ويكمل عليها!
والمخازن الدائمة دي ليها طرق وأنواع كتير جداً هنتعلمها سوا بالتدريج، زي:
ملفات الـ JSON: ملفات نصية بسيطة وسهلة بنحفظ فيها البيانات على شكل نصوص منسقة.
قواعد البيانات (SQL): ودي زي مستودعات ضخمة ومنظمة جداً بنخزن فيها بيانات آلاف المستخدمين والفلوس والعمليات بأمان وسرعة عالية.
ملخص درس النهارده:
الدرس الجاي بإذن الله هنبدأ نفتح أول مخزن بيانات لينا ونشوف إزاي هنخلي البوت يفتكر العداد ويكمل عليه من غير ما ينسى!
أشوفكم على خير يا مبرمجين ♥️
كيف يتعامل السيرفر/الاستضافه مع الكود اللي كتبته..
النهارده يا شباب هنتكلم في موضوع من أهم المواضيع اللي بتبني عليها أساسيات البرمجة، الدرس دا اي مبرمج لازم يكون فاهمه كويس جدا هنتكلم فيه عن طريقة تشغيل الملف وتعامله مع التخزين
تخيل معايا إنك حبيت تعمل بوت بسيط جداً "بوت عداد الأذكار"، فكرته إن المستخدم كل ما يضغط على زر، البوت يزود العداد ويقوله عدد مرات الذكر (1، 2، 3.. وهكذا).
لو فكرنا نكتب الكود ده باللي اتعلمناه قبل كده، تفتكر الكود هيكون إزاي؟ تعالوا نشوف:
الكود في المنشور السابق ↑
انت كتبت الكود ده، ورفعته على الاستضافة، وفعلت الويبهوك وجريت عشان تجربه..
كتبت للبوت "ذكر"، راح البوت رد عليك وقال:
عدد مرات الذكر الحالية: 1.تبتسم كدا وتقول تمام 🤓، تكتب "ذكر" تاني عشان يبقوا 2.. تلاقي البوت رد عليك وقال برضه:
عدد مرات الذكر الحالية: 1! تكتبها تالت ورابع وعاشر والبوت مبيزدش أبداً عن رقم 1!البوت هنا بينسى في كل مرة ومع كل ضغطة أو رسالة بتوصله! يا ترى إيه السبب اللي بيخلي الكود ميزودش عدد الاذكار ؟
دورة حياة ملف الـ PHP مع الويبهوك ⏳
السبب يرجع لنظام الـ الويبهوك (Webhook) اللي شرحناه الدرس اللي فات، ولطريقة تعامل السيرفر مع لغة PHP.
لازم تفهم وتستوعب جداً إن ملف الـ PHP المرفوع على الاستضافة مش بيفضل شغال في الخلفية وعمال بيفكر ومستني الرسايل.. لأ! الملف ده بيكون "مغلق تماماً"، ومفيش أي حاجة محجوزة ليه في الذاكرة المؤقتة (الرام).
الدايرة بتمشي بالترتيب ده بالظبط:
1. المستخدم يكتب كلمة "ذكر" في تيليجرام.
2. سيرفر تيليجرام يستقبلها ويبعتها فوراً لرابط ملف الـ PHP بتاعك على الاستضافة.
3. هنا ملف الـ PHP "بيصحى ويشتغل" فوراً، ويبدأ السيرفر يقرأ الكود من السطر الأول لحد السطر الأخير.
4. الملف وهو بيقرأ، بيلاقي السطر ده: $counter = 0; فبيحجز مكان في الرام للمتغير ويخليه صفر، بعدين يدخل على الشرط يلاقي المستخدم كاتب "ذكر"، فيزود العداد بـ 1، ويبعت النتيجة لتيليجرام.
5. بمجرد ما الرد يخرج من السيرفر ويروح لتيليجرام.. ملف الـ PHP بيقفل فوراً ويموت! والسيرفر بيمسح ويصَفّر كل المتغيرات والبيانات اللي كانت محجوزة في الرام كأنها لم تكن!
عشان كدا في المرة الثانية لما كتبت "ذكر".. الملف صحي من النوم وبدأ من الصفر تماماً، ولقى السطر المكتوب فيه
$counter = 0; فنفذ نفس العملية وبعتلك 1 وقفل تاني. هو مش فاكر المرة الأولى لأنه بيبدأ حياته من جديد مع كل رسالة بتوصله.لو بنعمل بوت متجر، والمستخدم شحن فلوس في حسابه، مش منطقي أبداً إن المستخدم أول ما يشتري منتج أو يبعت رسالة تانية نلاقي فلوسه طارت وبقت صفر لأن الملف بيقفل وينسى!
طيب إيه الحل مع المشكلة الكبيرة دي؟
في عالم البرمجة، عندنا طريقين عشان نحل المعضلة دي:
الطريقة الأولى: نخلي الملف شغال علطول وميقفلش وميفصلش
- وده نظام اسمه البولينج (Polling)، وفيه بنجبر الكود إنه يفضل شغال بشكل دائم ومستمر في الخلفية جوه السيرفر، وبكدا المتغيرات بتفضل عايشة جوه الرام ومبتتمسحش، وده ليه ميزات وعيوب هنعرفها في وقتها.
الطريقة الثانية: التخزين الدائم 📦
- بما إن الذاكرة المؤقتة (الرام) بتموت وتمشي كل ما الملف يقفل، فالحل الذكي إننا ناخد القيمة دي (سواء كانت العداد، أو فلوس المستخدم) وقبل ما الملف يقفل ويخلص شغل، نقوم "كاتبينها ومخيبنها" في مخزن خارجي دائم على السيرفر.
وأول ما الملف يصحى من النوم في المرة اللي بعدها، يروح يفتح المخزن ده، ويقرأ القيمة اللي جواه، ويكمل عليها!
والمخازن الدائمة دي ليها طرق وأنواع كتير جداً هنتعلمها سوا بالتدريج، زي:
ملفات الـ JSON: ملفات نصية بسيطة وسهلة بنحفظ فيها البيانات على شكل نصوص منسقة.
قواعد البيانات (SQL): ودي زي مستودعات ضخمة ومنظمة جداً بنخزن فيها بيانات آلاف المستخدمين والفلوس والعمليات بأمان وسرعة عالية.
ملخص درس النهارده:
ملف البوت مع الويبهوك بيشتغل "فقط" لما يوصله تحديث، ويخلص شغل ويقفل تماماً وتتمسح ذاكرته المؤقتة في الرام فينسى كل المتغيرات. وعشان نحافظ على البيانات وم تضيعش، لازم نربط البوت بمخزن دائم.
الدرس الجاي بإذن الله هنبدأ نفتح أول مخزن بيانات لينا ونشوف إزاي هنخلي البوت يفتكر العداد ويكمل عليه من غير ما ينسى!
أشوفكم على خير يا مبرمجين ♥️
🔥9❤2👍1
#PHP_10
مقدمه في ملفات الـ JSON 📦
اعتبره زي دفتر ملاحظات موجود على السيرفر جنب ملف الـ PHP بتاعك، بس الدفتر ده مش بيتمسحش ومش بينسى، وكل ما ملف الـ PHP يصحى يقدر يفتحه ويقرأ اللي جواه ويكمل من اللي وقف عنده
طب شكله من جوا بيبقى إزاي؟
لو عندنا بوت عداد أذكار وعايزين نخزن العداد، ملف الـ JSON هيبقى شكله زي كده:
على الشمال اسم البيانات وعلى اليمين قيمتها، بالظبط زي ما بتقول "العداد = 5"
ولو عندنا بيانات أكتر زي بوت متجر مثلاً بيخزن بيانات مستخدم، بيبقى كده:
شايف السهولة؟ حتى لو مش مبرمج تقدر تقرأه وتفهمه على طول، ده من أبسط أشكال التخزين الموجودة في عالم البرمجة
طب ده بيفكرك بإيه؟ 🤔
لو بصيت كويس في شكل الـ JSON هتلاقيه شبيه جداً بحاجة اخدناها قبل كده في درس PHP_2، المصفوفة المرتبطة (Associative Array) بالظبط!
لو تفتكر شكل المصفوفة المرتبطة في PHP كان كدا:
لو خدنا نفس البيانات وحطيناها في ملف JSON هتبقا كدا:
والشبه ده مش صدفة، ده اللي بيخلي التعامل بين PHP والـ JSON سهل جداً زي ما هتشوف دلوقتي
ازاي نتعامل مع الـ JSON في PHP؟ 🛠
PHP مديانا دالتين بس، واحدة للقراءة وواحدة للكتابة
الأولى: json_decode()
دي مش غريبة عليك خالص، احنا استخدمناها من PHP_5 في كود استقبال الرسايل من تيليجرام! بتاخد النص المكتوب بصيغة JSON وبتحوله لمصفوفة PHP نقدر نتعامل معاها ونطلع منها اللي محتاجينه
الثانية: json_encode()
دي عكسها بالظبط، بتاخد المصفوفة اللي عندنا في PHP وبتحولها لنص بصيغة JSON عشان نكتبها في الملف ونخزنها
ازاي ده كله هيحل مشكلة العداد؟ 💡
دلوقتي خليني أوضحلك المنطق كامل عشان تشوف الصورة بالكامل قبل ما نكتب الكود
وطبعا لو كتب ذكر تاني الملف هيصحى ويفتح الملف ويلاقي 6 مستنياه مش صفر، يزود عليه 1 ويبقى 7 ويجاوب بالعدد الصح، وهكذا للأبد من غير ما ينسى
الدرس الجاي هنكتب الكود ده بالكامل ونشوف كمان إزاي نتعامل مع الحالة اللي الملف مش موجود أصلاً، يعني أول مرة البوت يشتغل ملف data.json ده مش موجود، هنعمل إيه؟ 👀
اشوفكم في درس جديد ♥️
فاكر بوت الأذكار اللي عملناه الدرس اللي فات؟ اللي كل ما المستخدم يكتب "ذكر" البوت بيرد عليه بـ 1 بس ومهما كتب مبيزدش
قولنا إن السبب إن الملف بيصحى مع كل رسالة، ينفذ الكود، يبعت الرد، ويقفل وينسى كل حاجة جات فيه، ومع كل رسالة بيبدأ من الصفر تماماً
وقولنا إن الحل إننا نحفظ البيانات في مكان دائم برا الملف، مكان مش بيتأثرش بإن الملف قفل أو وقف
النهارده هنتعرف على أول مخزن دائم هنستخدمه وهو ملفات الـ JSON
مقدمه في ملفات الـ JSON 📦
اعتبره زي دفتر ملاحظات موجود على السيرفر جنب ملف الـ PHP بتاعك، بس الدفتر ده مش بيتمسحش ومش بينسى، وكل ما ملف الـ PHP يصحى يقدر يفتحه ويقرأ اللي جواه ويكمل من اللي وقف عنده
طب شكله من جوا بيبقى إزاي؟
لو عندنا بوت عداد أذكار وعايزين نخزن العداد، ملف الـ JSON هيبقى شكله زي كده:
{"counter": 5}على الشمال اسم البيانات وعلى اليمين قيمتها، بالظبط زي ما بتقول "العداد = 5"
ولو عندنا بيانات أكتر زي بوت متجر مثلاً بيخزن بيانات مستخدم، بيبقى كده:
{
"name": "Ahmed",
"balance": 150,
"is_premium": true
}شايف السهولة؟ حتى لو مش مبرمج تقدر تقرأه وتفهمه على طول، ده من أبسط أشكال التخزين الموجودة في عالم البرمجة
طب ده بيفكرك بإيه؟ 🤔
لو بصيت كويس في شكل الـ JSON هتلاقيه شبيه جداً بحاجة اخدناها قبل كده في درس PHP_2، المصفوفة المرتبطة (Associative Array) بالظبط!
لو تفتكر شكل المصفوفة المرتبطة في PHP كان كدا:
$user = array("name" => "Ahmed", "balance" => 150);لو خدنا نفس البيانات وحطيناها في ملف JSON هتبقا كدا:
{"name": "Ahmed", "balance": 150}الفرق الوحيد هو طريقة الكتابة بس، PHP بتستخدم السهم ( => ) والأقواس العادية، والـ JSON بيستخدم النقطتين ( : ) والأقواس المجعدة، غير كده هما نفس الفكرة تماماً
والشبه ده مش صدفة، ده اللي بيخلي التعامل بين PHP والـ JSON سهل جداً زي ما هتشوف دلوقتي
ازاي نتعامل مع الـ JSON في PHP؟ 🛠
PHP مديانا دالتين بس، واحدة للقراءة وواحدة للكتابة
الأولى: json_decode()
دي مش غريبة عليك خالص، احنا استخدمناها من PHP_5 في كود استقبال الرسايل من تيليجرام! بتاخد النص المكتوب بصيغة JSON وبتحوله لمصفوفة PHP نقدر نتعامل معاها ونطلع منها اللي محتاجينه
// افترض إن جوه ملف data.json مكتوب {"counter": 5}
$data = json_decode(file_get_contents('data.json'));
echo $data->counter; // هيطبع: 5ملحوظه file_get_contents بتجيب محتوى الملف كنص، وبعدين json_decode بتحوله لمصفوفة نقدر نتعامل معاها بالسهم -> زي ما عرفنا ف الدرس PHP_5
الثانية: json_encode()
دي عكسها بالظبط، بتاخد المصفوفة اللي عندنا في PHP وبتحولها لنص بصيغة JSON عشان نكتبها في الملف ونخزنها
// عايزين نحفظ إن العداد بقى 6
$data->counter = 6;
file_put_contents('data.json', json_encode($data));
// دلوقتي جوه ملف data.json مكتوب {"counter": 6}
هنا هتلاقي json_encode بتحول المصفوفة لنص JSON، وبعدين file_put_contents بتكتب النص ده في الملف وتحفظه
ازاي ده كله هيحل مشكلة العداد؟ 💡
دلوقتي خليني أوضحلك المنطق كامل عشان تشوف الصورة بالكامل قبل ما نكتب الكود
المستخدم يكتب "ذكر" ◄ الملف يصحى ويشتغل ◄ يفتح ملف data.json ويقرأ العداد ويلاقي مثلاً اخر عدد ذكر متخزن 5 ◄ يزود عليه 1 ويبقى 6 ◄ يرد على المستخدم بـ "عدد مرات الذكر: 6" ◄ يحفظ رقم 6 في ملف data.json ◄ وف الاخر يقفل
وطبعا لو كتب ذكر تاني الملف هيصحى ويفتح الملف ويلاقي 6 مستنياه مش صفر، يزود عليه 1 ويبقى 7 ويجاوب بالعدد الصح، وهكذا للأبد من غير ما ينسى
الدرس الجاي هنكتب الكود ده بالكامل ونشوف كمان إزاي نتعامل مع الحالة اللي الملف مش موجود أصلاً، يعني أول مرة البوت يشتغل ملف data.json ده مش موجود، هنعمل إيه؟ 👀
اشوفكم في درس جديد ♥️
❤6😁2👍1
بعتذر على تاخير النشر اليوم 🫶
محتاج اعرف رايكم ف الشروحات وكمان لو محتاجين جروب خاص بالقناه عشان اللي عنده اساله يسال ف الجروب
@u_w_ll
محتاج اعرف رايكم ف الشروحات وكمان لو محتاجين جروب خاص بالقناه عشان اللي عنده اساله يسال ف الجروب
@u_w_ll
❤6🔥1
توضيح للجميع
هدفي في القناة مش مجرد تعليم قواعد "syntax"، هدفي تعليمك "ازاي تفكر" (Logic)
الأدوات بتتغير، لكن العقلية البرمجية بتفضل معاك..
الـ JSON كقاعدة بيانات "خفيفة" (Lightweight) ومثاليه للبوتات الصغيرة اللي مش محتاجة تعقيدات سيرفرات الداتابيس الكبيرة (زي PostgreSQL)
ده بيوفر في المصادر وبيخلي البروجكت أسرع وأبسط..
القناة دي مبنية على التعلم باحترام. أي حد فاكر إن التطور بالشتيمة أو التقليل من غيره فمكانه مش هنا. العلم أخلاق قبل ما يكون ملف او كود شكله حلو
والشخصيه دي في منها كتير بس مش هتفرقلي
وفعلا صدق اللي قال..
هدفي في القناة مش مجرد تعليم قواعد "syntax"، هدفي تعليمك "ازاي تفكر" (Logic)
الأدوات بتتغير، لكن العقلية البرمجية بتفضل معاك..
الـ JSON كقاعدة بيانات "خفيفة" (Lightweight) ومثاليه للبوتات الصغيرة اللي مش محتاجة تعقيدات سيرفرات الداتابيس الكبيرة (زي PostgreSQL)
ده بيوفر في المصادر وبيخلي البروجكت أسرع وأبسط..
القناة دي مبنية على التعلم باحترام. أي حد فاكر إن التطور بالشتيمة أو التقليل من غيره فمكانه مش هنا. العلم أخلاق قبل ما يكون ملف او كود شكله حلو
والشخصيه دي في منها كتير بس مش هتفرقلي
وفعلا صدق اللي قال..
احذر من اتنين جعان معاه قرشين وجاهل اتعلم كلمتين
👏11❤5❤🔥1😁1🌚1🍓1