-
Posts
462 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
33
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو mennad sofiane
-
السلام عليكم ورحمة الله وبركاته معكم المبرمج مناد سفيان من الجزائر اليوم سوف أريكم بعض الصور للعبة من سيربح المليون وانشاء الله سأرفق لكم الملف بأكمله تحياتي لكم .
-
السلام عليكم ورجمة الله وبركاته ملف بسيط رغم الطلبات الكثيرة هذا الملف اكسل يقوم بتحويل قاعدة البيانات الى وورد وهو جميل أي يسهل عليك العناك وخاصة عند نسخ قاعدة بيانات من اكسل الى الوررد يستغرق وقت وخاصة عند لصقه في الوورد تكون قاعدة البيانات قد اختلطت مثل هذه الصورة : ولكن عند التغير معليك الا نسخ الأكواد وثم ارفاقها في اي ملف اكسل لديك و أتمنى أن يعجبكم هذا الملف المتواضع أخوكم في الله المبرمج مناد سفيان Copy_excel_to_word.rar
-
شكرا على مرورك الحلو أخي ali
-
السلام عليكم ورحمة الله وبركاته معكم المبرمج مناد سفيان من الجزائر اليوم سوف أهديكم ملف جميل جدا أودت أن أشارككم فيها دمتم في رعاية الله و حفظه Excel-Animations.rar
-
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
نعرف جيداً ما هي الدوال ( PHP FUNCTIONS ) وماهي الصيغة التي يتم تعريف الدوال بها وكيفية استخدامها, لكن لكل قاعدة شواذ. لذلك هناك نوع من الدوال يختلف قليلاً عن الدوال المعروفة وهو الدوال المجهولة ( PHP ANONYMOUS FUNCTIONSS ). كما نعلم أنه يتم تعريف الدالة العادية كالتالي حيث يتم تعريف الدالة باسم (myFunctionName) ومن ثم يمكن استدعاء الدالة بكتابة اسمها هكذا وتشبه الدالة المجهولة الدالة العادية من حيث أنها تحتوي على كود قابل للتنفيذ عند استدعاء الدالة ويمكنها استرجاع القيم ( PHP RETURNING VALUES ) وتقبل أيضاً الوسائط. راجع الدوال ( PHP FUNCTIONSS ). لكن يتضح الفارق من اسمها فهي دالة مجهولة أي ليس لها اسم . لاحظ الكود التالي لابد أنك لاحظت أن هناك اختلافين جذريان بين الدالة المجهولة والعادية وهما : 1- لا يوجد اسم للدالة بين الكلمة function والأقواس Parenthesis 2- هناك فاصلة منقوطة Semicolon (;) بعد تعريف الدالة . سطر رقم 4 وذلك لأن الدالة المجهولة في حد ذاتها هي تعبير Expression مثلها مثل المتغيرات والمصفوفات. والتعبيرات هي كل ما له قيمة. لكن إذا كانت الدالة المجهولة ليس لها اسم كيف يمكن استدعاءها!!!! كما قلنا أن الدالة المجهولة هي تعبير أي شيئ له قيمة لذلك يمكن : تخصيصها لمتغير ( PHP VARIABLE ) ثم استدعاءها بمجرد كتابة اسم المتغير يمكن اضافة أي عدد منها داخل مصفوفة ( PHP ARRAY ) يمكن تمريرها لدالة أخري لحين استخدامها لاحقاً. تسمي في هذه الحالة دالة استدعاء ( PHP CALLBACK FUNCTION ) تخصيص الدالة مجهولة Anonymous لمتغير Variable -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
الثوابت ( PHP CONSTANTS ) تشبه المتغيرات ( PHP VARIABLES ) حيث يتم تخصيص قيم لها لحين الرجوع إليها للإستخدام. ولكن هناك بعض الإختلافات بين المتغير والثابت الفرق بين المتغيرات والثوابت 1- لا يتم استخدام علامة $ مع الثوابت. 2- الثوابت حساسة لحالة الأحرف وتستخدم الأحرف الكبيرة Capital letters عند تعريف ثابت. 3- علي عكس المتغيرات لايمكن تغيير قيمة ثابت عند تعريفه define ولا يمكن عدم تعريفه undefine. 4- لا يتم تعريف الثوابت باستخدام علامة التخصيص فقط (=), ولكن يجب استخدام الدالة ()define أو const. 5- الثوابت يمكن تعريفها والوصول إليها من أي مكان وليست مرتبطة بمجال المتغيرات ( PHP VARIABLE SCOPES ) فهي عامة global بشكل افتراضي . 6- يبدأ المتغير بحرف أو شرطة تحتية Underscore ( _ ). 7- لايمكن تغيير قيمة الثابت بمجرد تعريفه. 8 – على عكس المتغيرات عامة المجال ( Global Scope Variables ) لا يتم استخدام الكلمة global عند استخدام الثوابت داخل الدوال. قم باختبار الكود التالي استخدام الثوابت في الدوال على عكس المتغيرات عامة المجال ( Global Scope Variables ) لا يتم استخدام الكلمة global عند استخدام الثوابت داخل الدوال. كما نلاحظ تم استخدام الثابت A مباشرة داخل الدالة ()hello دون الحاجة لاستخدام الكلمة globla. ثوابت سابقة التعريف Predefined Constant Variables توفر ( PHP ) العشرات من الثوابت سابقة التعريف ومن هذه الثوابت مجموعة الثوابت السحرية Magic constants وتتميز هذه المجموعة أنها تبدأ بشرطتين تحتيتين (__) في كل من البداية والنهاية ومن هذه الثوابت السحرية __LINE__ , __FILE__ و __DIR__ وآخرون ولكن لكل واحدة شرح وطريقة استخدام . -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
جملة for هي من الأدوات القوية لـ ( PHP ) في عمل التكرار ( looping ) حيث يتم تعريف المتغير واختبار الشرط وعمل التعديل في سطر واحد ويتم الفصل بينهم باستخدام الفاصلة المنقوطة semi-colon ( ; ). ويمكن تلخيص تسلسل العمليات داخل حلقة ( PHP FOR ) هكذا : إضافة متغير عداد ذو قيمة ابتدائية اختبار تحقق شرط معين تنفيذ الكود زيادة قيمة العداد بعد انتهاء كل عملية تكرار صيغة جملة For في الكود السابق يتم طباعة جدول الضرب للعدد 12 باستخدم جملة ( PHP FOR ) بالتسلسل التالي -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
معلومات يجب معرفتها قبل الإستمرار في القراءة 1- ما هي المتغيرات variables ؟ أحياناً نحتاج استخدام رمز معين كرمز فقط وليس عنصر ( PHP ) قابل للتنفيذ . مثلاً إن أردت استخدام علامة (‘) كجزء من نص وليس رمز برمجي يتم تنفيذه, فمن الطبيعي -
السلام عليكم ورحمة الله وبركاته اليوم سأقدم لكم ملف بسيط للصور المتحركة الجميلة و البسيطة ويمكن أي مستخدم اضافتها في برنامج الموظفين ولذا هذا الملف البسيط لا يحتاج الى الشرح . أخوكم في الله المبرمج : مناد سفيان الجزائر. excel image 2018.rar
-
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
نعلم جميعاً أن لكل متغير مجال محدد ( PHP VARIABLE SCOPES ) ولا يمكن استخدام المتغير إلا في نطاقه, ونعرف أن المتغيرات الشاملة ( PHP GLOBAL VARIABLES ) لا يمكن استخدامها داخل الدوال إلا باستخدام كلمة global . لكن ماذا إذا أردت استخدام المتغيرات الشاملة كوسيط لدالة function argumentt . يمكن تمرير المتغيرات الشاملة كوسائط للدوال باستخدام مرجع reference للمتغير وليس استخدام المتغير نفسه عن طريق وضع علامة & قبل وسائط الدالة. كما تعلم أنه يمكن تمرير قيم الوسائط للدالة ( php passing arguments by value ) وهذه الطريقة تستخدم الوسائط دون تغيير قيمتها الأصلية أنظر الكود التالي شرح الكود : 1- في السطر رقم 2 قمنا بتعريف الدالة fix_names ومررنا إليها المتغيرات n1,n2,n3 2- في السطر رقم 3,4,5 قمنا بتطبيق الدالة ( PHP UCFIRST ) التي ستقوم بتحويل الأحرف الأولى لقيم المتغيرات إلى أحرف كبيرة. 3- في السطر رقم 6 طلبنا طباعة قيم المتغيرات بعد التحويل. 4- في السطر رقم 8,9,10 قمنا بتعريف المتغيرات a1,a2,a3 . 5- ثم في السطر رقم 11 قمنا بتطبيق الدالة fix_names على هذه المتغيرات, فيتم طباعة المتغيرات مع تغيير الأحرف الأولى لها . 6- أما في اسطر رقم 13 قمنا بطباعة المتغيرات a1,a2,a3 فتكون النتيجة هي القيم الأصلية دون تغيير. بالتالي تمرير قيم الوسائط إلى الدوال يحافظ على قيم الوسائط دون تغيير , على عكس تمرير الوسائط بالمرجعية ( Passing By reference ) أنظر الكود التالي شرح الكود 1- في السطر رقم 2 قمنا بإنشاء دالة ( PHP FUNCTIONS ) وهي fix_names باستخدام الوسائط arguments وهي n1, n2,n3 بالإضافة إلى وضع & قبل كل وسيط. هذه الدالة تقوم بتحويل الحرف الأول لأي متغير من النوع string إلى حرف كبير Capital letter باستخدام الدالة مسبقة الإعداد في بي إتش بي ( PHP UCFIRST ). 2- ثم في السطر رقم 8,9,10 قمنا بتعريف ثلاثة متغيرات a1 , a2, a3 لتنفيذ الدالة fix_names عليهم 3- ثم في السطر رقم 11 قمنا باستدعاء الدالة fix_names وتم تمرير الثلاثة متغيرات كوسائط لهذه الدالة, فقامت الدالة بتحويل الحرف الأول ولكن حتى هذه اللحظة لن يتم طباعة النتيجة لأننا لم نطلب الطباعة داخل الدالة في الأساس. 4- ثم في السطر رقم 12 طلبنا طباعة المتغيرات الثلاث باستخدام echo , فكانت النتيجة واحدة مما يوضح أن تمرير الوسائط للدوال بالمرجعية يقوم بتغيير القيمة الأصلية لها على عكس تمرير قيم الوسائط. أيضاً من الاستخدامات المفيدة لتمرير الماغيرات بالمرجعية, هو استخدامها مع جملة ( PHP Foreach As ). فكما نعلم أن جملة foreach as تقوم بعمل التكرار الحلقي على قيم المصفوفات بحيث يتم تخصيص كل قيمة لمتغير ثم الاستفادة من هذا المتغير فيما بعد, لكن دون التأثير على القيم الأصلية داخل المصفوفة. ماذا إن أردت تغيير القيم الأصلية للمصفوفة عند استخدام foreach as ؟ نعلم جميعاً أن جملة foreach as تكتب بهذه الصيغة : الآن إذا أردنا تغيير القيم الأصلية للمصفوفة يجب علينا تمرير القيم بالمرجعية عن طريقة إضافة علام ( & ) قبل value$ كما يظهر في الصيغة التالية : لتوضيح الفكرة سنقوم بعمل مصفوفة لمجموعة من الأسماء تبدأ بالأحرف الكبيرة ثم سنمرر هذه الاسماء بالمرجعية إلى جملة foreach as لتحويل حالة جميع الأحرف إلى الأحرف الكبيرة الأن عن إضافة علامة ( & ) إلى القيمة عند كتابة جملة foreach as سيتم عمل مرجع ( Reference ) للقيم الأصلية داخل المصفوفة , وبالتالي عند تطبيق الدالة ()strtoupper سيتم تحويل حالة جميع الأحرف إلى أحرف كبيرة. تحميل الملف : foreach_pass_by_reference.zip -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
PHP IF STATEMENT ) أو (إذا) من أدوات الشرط الغير حلقية ( Non-looping conditional ) , وتستخدم لفحص تحقق شرط معين بحيث إن كانت إجابة الفحص هي نعم true يتم تنفيذ عملية معينة , أما إن كانت خطأ تقوم بإنهاء العملية أو تنفيذ عملية أخري. صيغة جملة if يتم كتابة جملة if بهذا الشكل ا كان حسابك البنكي bank_balance$ رصيده أقل من 1000 دج أو أياً كانت عملتك , فستقوم بإيداع مبلغ 1000 دجmoney$ , فيتم كتابة البرنامج بهذا الشكل وإذا كانت قيمة رصيدك أكبر من 1000 سيقوم بتجاوز العملية واستكمال البرنامج. أما إذا أردت تنفيذ عملية أخري في حالة عدم تحقق الشرط , أي الجواب (لا) false يجب أن تستخدم جملة else (غير ذلك). وبهذا يمكن طباعة جملة تفيد بأن الرصيد الموجود كافي إذا كان الرصيد أكبر من 1000 بهذا الشكل ماذا إن كنت تريد سحب مبلغ في حالة عدم تحقق الشرط, أي أن الرصيد أكبر من 1000 , فيمكنك وضع شرط آخر بحيث إذا كان الرصيد الموجود أكبر من أو يساوي 2000 ستقوم بسحب مبلغ 500 دج with_draw$ بهذا الشكل يمكنك إضافة إي عدد من جملة elseif , ولكن إن كان العدد سيكون كثيراً للغاية يمكنك إستبدال elseif بـ ( PHP SWITCH STATEMENT ). علامة الاستفهام الشرطية ? يمكن استبدال جملة if بالمعامل الاستفهامي ? ( CONDITIONAL QUESTION MARK ) في حالات الشرط الصغيرة أو التي لا تحتاج إلا سطر واحد في الكود السابق نسأل , هل كمية الوقود أقل من أو تساوي 1 ؟ , فإذا كانت الإجابة نعم true سيتم طباعة السلسلة النصية (string) “املأ خزان الوقود” , وإذا كانت الإجابة لا false سيتم طباعة “يوجد وقود كافي”. ويمكن تخصيص نتيجة الشرط إلي متغير enough$ -
السلام عليكم ورحمة الله وبركاته اليوم سأرفق لكم ملف بسيط عن قرص متحرك و السلام عليكم ورحمة الله وبركاته أخوكم في الله المبرمج مناد سفيان الجزائر ملف لقرص متحرك.rar
-
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
دالة الاستدعاء ( CALLBACK FUNCTION ) هي دالة تقوم بتعريفها بنفسك ثم تقوم بتمريرها كوسيط Argument لدالة أخرى. بحيث تقوم الدالة المستقبلة (الأساسية) باستدعاء الـ callback في أي وقت فتقوم دالة الاستدعاء بتغيير سلوك الدالة المستقبلة. وهناك بعض الدوال المدمجة في ( PHP ) تستخدم دوال الاستدعاء ومنها دالة ( array_map ) هي دالة من دوال المصفوفات تستقبل دالة استدعاء ( CALLBACK FUNCTION ) بحيث يتم تطبيق الـ callback على كل عنصر من عناصر المصفوفة. أنظر الكود التالي في السطر رقم 3 أنشأنا دالة عادية وقمنا باستخدام name$ كوسيط 2- تقوم هذه الدالة بتغيير حالة الحرف الأول من الوسيط إلى حرف كبير Uppercase باستخدام الدالة ()ucfirst ثم ارفاقها بـ “Hello” باستخدام الـتسلسل (STRING CONCATENATION ) ومن ثم استرجاع النتيجة ( RETURNING VALUESS ) . 3- في السطر رقم 7 قمنا بعمل مصفوفة ( PHP ARRAY ) من الأسماء names$ 4- في السطر رقم 8 قمنا بتمرير الدالة nameTOGreeting كوسيط Argument للدالة ()array_map 5- طباعة النتيجة باستخدام ( PHP print_r ) فتكون النتيجة هي Array ( [0] => Hello ’Mohamed! [1] => Hello Ahmed! [2] => Hello Ali! ) ولكن هل تتذكر أن السبب الأساسي لاستخدام الدوال هو انك تقوم بوضع مجموعة من الأسطر داخل دالة بغرض استخدامها مرات عديدة؟. بالطبع نعم لذا إن كات الدالة ستستخدم مرة واحدة لغرض محدد فقط فيفضل تمريرها كدالة مجهولة ( PHP ANONYMOUS FUNCTION ) انظر الكود التالي -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
نعلم جميعاً أن لكل متغير مجال محدد ( PHP VARIABLE SCOPES ) ولا يمكن استخدام المتغير إلا في نطاقه, ونعرف أن المتغيرات الشاملة ( PHP GLOBAL VARIABLES ) لا يمكن استخدامها داخل الدوال إلا باستخدام كلمة global . لكن ماذا إذا أردت استخدام المتغيرات الشاملة كوسيط لدالة function argumentt . يمكن تمرير المتغيرات الشاملة كوسائط للدوال باستخدام مرجع reference للمتغير وليس استخدام المتغير نفسه عن طريق وضع علامة & قبل وسائط الدالة. كما تعلم أنه يمكن تمرير قيم الوسائط للدالة ( php passing arguments by value ) وهذه الطريقة تستخدم الوسائط دون تغيير قيمتها الأصلية يضاً من الاستخدامات المفيدة لتمرير الماغيرات بالمرجعية, هو استخدامها مع جملة ( PHP Foreach As ). فكما نعلم أن جملة foreach as تقوم بعمل التكرار الحلقي على قيم المصفوفات بحيث يتم تخصيص كل قيمة لمتغير ثم الاستفادة من هذا المتغير فيما بعد, لكن دون التأثير على القيم الأصلية داخل المصفوفة. -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
عند كتابة الأكواد أو حتى قراءة أكواد مكتوبة بواسطة الغير تجد منهم من يستخدم لطباعة القيم echo وآخرون يستخدمون print فما الفرق بين كل منهما؟ الإختلافات بين echo و print بشكل مباشر هي : 1- echo أسرع في طباعة المتغيرات (نتحدث بالملي ثانية أو أقل) 2- print تقوم باسترجاع القيمة 1 (TRUE) وهذا ما يجعلها تأخذ وقت اكبر تخيل أن لديك اثنين من الموظفين فطلبت من كل منهما تصوير مستند فقام الأول بسماع الأمر وتنفيذه مباشرةً ثم تسليم النسخة المصورة أما الثاني قام بالتصوير ثم رد قائلاً “تمام يا افندم” ثم قام بتسليم النسخة المصورة وبالتالي أستغرق وقت أكبر من الأول. 3- echo تقبل عدد لانهائي من المدخلات بينما print تقبل مدخل واحد فقط لاحظ عند تنفيذ الكود تكون نتيجة echo هي “IamMohamed” ملتصقة ببعض لاعتبار كل من (I) و (am) و (Mohamed) مدخلات منفصلة تم طباعتهم وراء بعض. أما في السطر رقم 3 تم طباعة الجملة كاملة كمدخل واحد “I am Mohamed” . 4- يمكن استخدام print كدالة ولايمكن بالنسة لـ echo -
هي قاعدة Position في CSS وكيفية عملها سهل علي الكثير عند محاولة تصميم صفحة ويب. وعدم الدراية السليمة بالفرق بين Position:Static, Relative, Absolute, Fixed سيسبب لك الكثير من المتاعب والتخبط عند تصميم موقعك، ولكن سنوضح عنها الكثير. فقاعدة Position في CSS إن كنت تعرف أم لا فهي قاعدة لتحديد موقع العنصر في الصفحة، عن طريق التلاعب بإحداثيات العنصر في الصفحة Top, Right, Bottom and Left. وفي الحقيقة معظم عناصر الصفحة يجب أن تتبع التدفق الطبيعي للصفحة/الوثيقة Document،أي يتصرف كل عنصر بالشكل الذي صمم لأجله. ولكن يأتي دور Position عندم تريد عمل شيء أكثر تقدماً مثل الأنيميشن أو دفع عنصر خارج الإطار الطبيعي له دون التأثير على العناصر المحيطة مثلاً. ومما لا شك فيه أن هنا خصائص افتراضية لعناصر الصفحة. فمثلاً div فإن القيمة الإفتراضية للقاعدة display كذلك فإن القيمة الإفتراضية للقاعدة position لجميع العناصر هي static، وهي قيمة من ضمن مجموعة من القيم، حيث سنتحدث في السطور التالية عنها كل على حده وهي: Static Absolute Relative Fixed Inherit Sticky الخاصية Static وهي الوضع الإفتراضي لعناصر الصفحة/الوثيقة حيث تأخذ طريقة العرض والأسلوب والتأثير الإفترضي على العناصر المحيطة التي يُفترض أن تأخذه أثناء سريان بناء الوثيقة Document Flow. فإذا قمت بعمل اثنين div والذي يأخذ طريقة العرض block وموقعه الإفتراضي Static فمن الطبيعي أن يقع كل منهما أسفل الآخر وهذا هو السريان الطبيعي للوثيقة هي block بشكل افتراضي على عكس span التي هي inline. الخاصية Relative إذا كان الوضع الإفتراضي للعناصر هو المثول للتدفق الطبيعي للوثيقة، فإن هذه الخاصية تجبر العنصر على الخروج من هذا التدفق،ومع ذلك تتعامل معها العناصر المحيطة على أنها موجودة وتحتفظ بمساحتها. قد تسبب لك الخاصية Relative بعض الحيرة لأن هذه الخاصية في الحقيقة تعني أن العنصر “نسبي إلى نفسه أو بمعنى آخر إلى الموقع المفترض أن يوجد به”، وفي الحقيقة إن لم تقم بتغير قيم Top, Right, Bottom and Left سيكون تأثيرها مثل تأثير static ولكن على عكس Static يمكن تطبيق جميع الخصائص دون مشكلة. عند التحكم في قيم Top, Right, Bottom and Left يتم ترحيل العنصر عن موقعه دون أن يؤثر على العناصر المحيطة، على عكس تطبيق Margin والتي تدفع العناصر المحيطة بما يساوي قيمة الهامش Margin. الخاصية Absolute هي الأخرى تجبر العنصر على الخروج من التدفق الطبيعي للوثيقة ولكن على عكس Relative ليس له تأثير على العناصر التي تتبع التدفق الطبيعي للوثيقة ويأخذ موقعه المطلق (تتعامل معه عناصر الوثيقة كما لو كان غير موجوداً بها). والموقع المطلق Absolute في الحقيقة يتوقف على عدة عوامل: إذا قمت بتحديد الخاصية position:absolute فقط دون تحديد الإحداثيات (Top, Right, Bottom and Left) فإن القيمة الإفتراضية للإحداثيات تكون auto، وهذا يعني أن العنصر سيكون في الموقع الذي هو مفترض أن يكون به أثناء وجوده داخل التدفق الطبيعي للوثيقة. إذا قمت بتحديد الخاصية position:absolute مع تحديد أي من الإحداثيات (Top, Right, Bottom and Left) فسيحدث أحد أمرين: سيتم تحديد موقع العنصر المطلق بالنسبة لأول أب موقعه ليس static إذا لم يتم العثور على أب أو جد إلى أخر الترتيب الشجري يأخذ موقع غير static سيتم تحديد العنصر بالنسبة للوثيقة/الصفحة لنفرض مثلاً أن لديك إثنين div داخل بعضهما وأنت لم تقم بتغيير الـ Position، أي في الوضع الإفتراضي، فإن الوضع الطبيعي أن يكونا فوق بعضهما. ثم قمت بتغيير الموقع للـ div الداخلي (الإبن) إلى Absolute، ماذا تتوقع أن يحدث؟ إليك هذا السيناريو: هل تم تحديد الإحداثيات؟ إن كان لا يكون العنصر بالنسبة لموقعه الإفتراضي إن كان نعم؟ سيقوم الـ div الإبن بفحص الـ Position للـ div الأب فإن كان موقعه هو الإفتراضي Static (هذا ما افترضناه) فيقوم بتخطيه والنظر لما بعده وهكذا إلى أن يجد أحد الآباء يأخذ موقع غير static، فيقوم باتخاذه نقطة بداية. إن لم يجد نهائياً فيقوم بالضبط نسبة للوثيقة نفسها. الآن سنقوم بتجربة ضبط وضع الـ div الداخلي إلى absolute دون تغيير الأب أو تحديد إحداثيات، ولكن سنقوم بعمل هامش علوي للأب حتى نفرق بينه وبين الوثيقة
-
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
تستخدم المعاملات ( PHP OPERATORS ) في العمليات الرياضية والمنطقية والمقارنات مثل الجمع والطرح والقسمة والضرب. وتشبه معاملات ( PHP ) العمليات الرياضية البسيطة مثل المعاملات الحسابية Arithmetic Operators وهي المعاملات الخاصة بالعمليات الجبرية كالجمع والطرح …إلخ حيث يمكنك تخصيص قيمة للمتغير ( PHP VARIABLES ) j$ ثم استخدامه في العمليات بالشكل التالي توقع أن جميع المعاملات السابقة واضحة ولكن الغريب هما معاملي الزياة (++) والنقصان (- -) , ولكي نفهم المقصود بهما يجب أولا فهم ما يسمى بمعاملات التخصيص Assignment Operators. معاملات التخصيص Assignment Operators تستخدم معاملات التخصيص لتخصيص قيمة Value لمتغير ( PHP VARIABLES ). وتبدأ باستخدام علامة المساواة أو التخصيص (=) ثم =+ , =- وهكذا . تقوم علامة التخصيص (=+) بإضافة القيمة في الناحية اليمنى لما هو في الناحية اليسرى. بحيث إذا كانت قيمة المتغير count$ تساوي 5 تتغير قيمته إلي 6 عند استخدام علامة التخصيص (=+) بهذا الشكل بدلاً من تكرار المتغير هكذا نلاحظ في جدول المعاملات الحسابية Arithmetic Operators وجود معامل الزيادة (++) ومعامل النقصان (- -) ولم نتحدث عنهم لأنه كان لابد من فهم معاملات التخصيص أولاً, فما المقصود بهما؟.بشكل مبسط هي تقوم بإضافة أو طرح 1 .ولكي نفهم ذلك تخيل أنك تقوم بعملية فحص علي متغير ما وليكن x$ الذي قيمته تساوي 9 بحيث إن كانت قيمته تساوي 10 تتم طباعة المتغير ,إن لم يتحقق الشرط تتم زيادة المتغير x$ بقيمة 1 ثم الفحص مرة أخري حتي يتحقق الشرط ثم طباعة المتغير. -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
إذا كان هناك معاملات ( PHP Operators ) لإضافة المتغيرات الرقمية Int ,توجد أيضاً للمتغيرات من النوع الـ String أو الحرفية علامة التخصيص Period (.) حيث تقوم بعمل دمج للسلاسل النصية ( String Variables ) وتكون القيمة الجديدة لـ x$ هي مجموع النصين. ولتتأكد أنه تم تغيير قيمة المتغير x$ قم بتجربة الكود التالي وستجد التيجة واحدة -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
التعليقات على الأكواد في بي اتش بي PHP Comments تعد من أهم أدوات المبرمج، فلابد من وضع الملاحظات على الأكواد لتسهيل عملية مراجعة الأكواد سواء من قبل المبرمج نفسه أو من سيقوم بقراءة الكود من بعده. وهذه التعليقات لن تظهر لمستخدمي التطبيق على عكس تعليقات اتش تي ام ال HTML Comments تعليق السطر الواحد : فأحياناً يكون التعليق مجرد ملحوظة صغيرة لن تحتاج أكثر من سطر واحد، فيتم كتابة التعليق باستخدام علامة // أو #، فيقوم مُنفذ PHP بتجاهل هذا الكود. ففي الكود السابق لن يتم طباعة سوى السطر رقم 3 أما جملة echo في السطر رقم 4 , 5 لن يتم تنفيذها لأنها مجرد تعليق. التعليق متعدد الأسطر : لكن أحياناً تحتاج لإضافة تفاصيل أكثر في أكثر من سطر، بحيث تم وضع مجموعة الأسطر داخل علامة /**/، فمثلاً هذا تعليق متعدد الأسطر من قالب ووردبريس فجميع هذه الأسطر لن يتم تنفيذها ولكن هي مجرد مجموعة معلومات مفيدة. أهمية التعليقات في البرمجة : لنتخيل أنك قمت ببرمجة موقع إلكتروني لأحد العملاء، ثم بعد فترة كبيرة طُلب منك دعماً فنياً لهذا الموقع، فهل ستتذكر فيما كنت تفكر تحديداً في هذا الوقت، أو ربما هذا الشخص لديه بعض المعلومات التي يستطيع من خلالها حل مشكلته ولكن لايعرف ميكانيكية عمل الكود فلايصل للحل إلا بعد معاناه أو قد لايصل، لذا لابد من وضع علامات إرشادية دائماً على الطريق لتسهيل الوصول للهدف. -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
المصفوفات ( PHP ARRAYS ) تستخدم لتخزين أكثر من قيمة لمتغير ( PHP VARIABLES ) واحد. يمكنك أن تتخيل أنك تريد كتابة أسماء فريقك فتقوم بلصق مجموعة من علب الكبريت ببعض وكتابة اسم لاعب داخل كل علبة وتكتب على كامل العلب Team. بالتالي تصبح Team عبار عن صف من الأسماء Array . أنواع المصفوفات 1- مصفوفات أحادية البعد One Dimensional Array : وهي النوع العادي الذي تحدثنا عنه في المثال السابق. 2- مصفوفات ثنائية البعد Two Dimensional Array : ببساطة يمكنك ان تتخيلها أيضا مجموعة من علب الكبريت (وليكن 9 علب) تم لصقها بحيث تكون ثلاثة أعمدة وثلاثة صفوف وأنك ستقوم بتخزين أي بيانات داخلها وليكن X و O بهذا الشكل مبدأ المؤشر الضمني لكي تستطيع فهم المصفوفات جيداً والتعامل معها يمكنك استرجاع طريقة علبة الكبريت, بحيث تتخيل أن هناك علامة (مؤشر) في بداية المصفوفة, هذا المؤشر يتحرك داخل المصفوفة إلى أن يصل للقيمة التي تستدعيها أو التي تقوم بتطبيق اي من دوال المصفوفات عليها , ثم يقوم بتنفيذ المطلوب. -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
المتغيرات هي المحرك الأساسي لأي لغة برمجة, ولكي تفهم ماهية المتغيرات لابد أن تسترجع نظام العمل في أي مكان , حيث تتكون منظومة العمل من مدير وموظفين وحافظات للمستندات و الأرشيف لحفظ الملفات والمستندات حسب كل قسم. فمثلاً إذا كان هناك عميل يدعي محمد لديه بعض الأعمال التي تخص قسم المبيعات فأنت تقوم بوضع المستندات الخاصة به داخل ملف ثم تكتب عليه إسم محمد ثم تقوم بوضع هذا الملف (محمد) في أرشيف حفظ الملفات ويكون الإسم العام لهذا الأرشيف هو (أرشيف المبيعات). من هذا المثال البسيط يمكن أن نستنتج أن البرنامج هو الشركة والحافظات التي يتم تخزين المعلومات بها هي المتغيرات ( PHP VARIABLES ) . أما الأرشيف العام الذي يحتوي على أكثر من حافظة يسمي في البرمجة مصفوفة ( PHP ARRAYS ) والمصفوفة هي عبارة عن مجموعة من القيم تحت مسمى متغير واحد. تعريف المتغير Variable يمكن أن تتخيل المتغير كما لو كان علبة كبريت ثم كتب إسم Mohamed على ورقة ثم وضعتها داخل علبة الكبريت وسميت علبة الكبريت بالإسم username. وعندما تريد طباعة اسم الشخص تقوم بإحضار العلبة username لاخراج الورقة لطباعتها ثم إعادتها مرة أخري داخل العلبة. صيغة المتغيرات Variable Syntax عند تعريف متغير لابد من استخدام علامة الدولار هذه ($) قبل اسم المتغير ثم علامة المساواة (=) ثم قيمة المتغير لكن ماذا عن علامات الاقتباس المزدوجة Double Quotation Marks (” “) ؟ , إضافة علامة الاقتباس له علاقة بما يسمى بأنواع البيانات Data Types , حيث يتم تصنيف البيانات لأنواع مثل بيانات حرفية String أو رقمية Numericc وهكذا, وهذا ليس موضع اهتمامنا الآن. وتوجود علامات الاقتباس المزدوجة بسبب استخدام نوع البيانات String . أما إذا كان نوع البيانات Numericc يتم كتابة المتغير بدون علامات الاقتباس المزدوجة ويتم اضافة المتغيرات وتخصيص قيم لها واستدعائها تماماً بنفس فكرة علبة الكبريت حيث يتم تخزين قيمة Value للمتغير username$ وهي Mohamed وعندما تريد طباعة القيمة Mohamed وفي هذه الحالة تكون النتيجة هي القيمة Mohamed ويمكنك أيضا نسخ المتغير لمتغير آخر بحيث يكون له نفس قيمة المتغير الأساسي مثل وعند استدعاء المتغير الجديد ستكون النتيجة أيضاً هي القيمة Mohamed مثال عملي 1- عليك أولاً تنصيب الخادم المحلي ( LOCAL SERVER ) أو تشغيله إن كان منصباً 2- قم بفتح برنامج ++ Notepad وعمل ملف جديد 3- إنسخ الكود التالي. (بدون الترقيم) 4- أحفظ الملف في مجلد htdocs الموجود داخل مجلد تنصيب Xampp بالأسم test وإمتداد php بحيث يكون test.php 5- قم بفتح المتصفح ثم أكتب في عنوان ملف الاختبار localhost/test.php ثم أضغط Enter 6- تم عرض القيمة Mohamed مرتين وكل منهما في سطر منفصل. الآن وضحت الفكرة العامة للمتغيرات ولكن هل لاحظت أن السطر الأخير من الكود (رقم 6) لايوجد به الفاصلة المنقوطة (;) ؟ , بالطبع لاتوجد فهذا آخر سطر في البرنامج ولا يحتاج للفاصلة المنقوطة. ماذا عن العلامة (//) في السطر رقم 4؟, هذه العلامة تستخدم للتعليقات ( PHP COMMENTS ) وهي سطور دلالية توضيحية فقط ولا يتم تنفيذها كجزء من البرنامج وهناك أكثر من طريقة لإضافة التعليقات سنناقشها في موضوع منفصل. متغير متغير variable variable نعني بذلك أنه يمكن أن تكون قيمة متغير هي نفسها متغير . 1 – قمنا بتعريف متغير var$ وخصصنا له القيمة ” String “. 2 – ثم قمنا بتحويل هذه القيمة نفسها إلى متغير عن طريق تعريف المتغير نفسه مرة أخري مع ووضع علامة ( $ ) قبل المتغير . أي أصبح هناك ( $$ ). 3- الآن بالرغم من أنه لم يتم تعريف متغير باسم String$ إلا أننا طلبنا طباعة هذا المتغير. لأنه تم إنشاء هذا المتغير كنتيجة لـ ( $$ ). تعليمات كتابة المتغيرات 1- يجب أن يبدأ المتغير بعلامة الدولار $ 2- يجب أن يبدأ المتغير بحرف أو الشَرطة التحتية Underscore (_) 3- يجب أن يحتوي المتغير علي حروف أو أرقام فقط 4- لاينبغي أن يحتوي المتغير علي مسافة. أما إن إردت كتابة أكثر من كلمة فيمكنك استخدام الشَرطة التحتية بهذا الشكل two_words$ 4- المتغيرات حساسة لحالة الأحرف , بمعني أن VARIABLE$ لا يساوي variable$ -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
توفير بيئة PHP إذا كنت تعلم ماهي لغة PHP فلابد أنك تعرف أنه لكي تبدأ استخدام لغة PHP لابد أن توفر البيئة المناسبة , وأقصد بالبيئة , البرنامج الذي يمكنه قراءة أكواد PHP وهذ البرنامج يتم تشغيله من خلال الخادم Server ويمكنك توفير بيئة الخادم بطريقتين 1- إما تشغيلها علي سيرفر علي الإنترنت من خلال حجز دومين Domain وإستضافة Hosting Plan ومنها ما هو مجاني والآخر مدفوع. 2- تشغيلها عن طريق تنصيب خادم محلي Local Server يتم تنصيبه علي حاسوبك الخاص. والخيار الثاني هو الأفضل إذا كانت هذه بدايتك مع PHP أو حتى إذا كنت تريد كتابة الأكواد واختبارها قبل إضافتها لموقعك ,وھناك العدید من البرامج التي تقوم بتوفير بيئة التعامل مع لغة PHP بتحويل حاسوبك الشخصي إلي سیرفر Server وبالتالي یمكنك تنفيذ أكواد php دون الحاجة للأتصال بالإنترنت.ويكون عنوان الموقع عند استخدام خادم محلي Local Server هو localhost. برامج الخادم 2- Apache Server 3- Xampp 4- Mamp 5- Wamp شخصياً أتعامل ببرنامج Xampp برامج التحرير علي الرغم من أن أي محرر نصوص يمكن استخدامه لكتابة أكواد Html , CSS , JavaScript و PHP , لكن تتوفر مجموعة من البرامج المجهزة خصيصاً لكتابة الأكواد البرمجية وسهولة التعديل عليها ووظائف أخري منها تمييز الأوامر البرمجية بألوان مختلفة وتوقع الأمر المراد كتابته بمجرد كتابة الأحرف الأولي منه , أيضا إظهار الأخطاء. ومن هذه البرامج 1- Editra 2- ++ Notepad بالإضافة إلى برامج أكثر إحترافية وأكثر أداءً مثل Dreamweaver و Aptana Studio وغيرها. لكن يمكنك البدء في استخدام ++ Notepad . كتابة كود PHP لكي تبدأ في استخدام PHP لابد وأن يكون الملف الذي تكتب داخله الأكواد يحمل إمتداد php مثل test.php ويتم كتابة الكود بهذا الشكل 1 <?php write your code here ;?> بحيث يتم كتابة php?> للتعريف بأن ما بعدها هو أكواد PHP ثم تقوم بإنهاء البرنامج بإستخدام <?; وفائدة الـفاصلة المنقوطة Semi colon (;) هو إنهاء الجملة البرمجية. حيث أن البرنامج يكون عبارة عن مجموعة من الجمل التي يتم أنهاء عملها باستخدام الفاصلة المنقوطة(;). اختبار بيئة php 1- عليك أولاً تنصيب الخادم المحلي 2- قم بفتح برنامج ++ Notepad وعمل ملف جديد 3- إنسخ الكود التالي <?php echo "Hello World";? 4- أحفظ الملف في مجلد htdocs الموجود داخل مجلد تنصيب Xampp بالأسم test وإمتداد php بحيث يكون test.php 5- قم بفتح المتصفح ثم أكتب في عنوان الموقع الرابط لملف الاختبار localhost/test.php ثم أضغط Enter ولاحظ عرض كلمة Hello World الآن تستطيع تنفيذ أكواد PHP علي حاسوبك الشخصي والتعديل والاضافة والإختبار بمنتهي السرعة والسهولة.ويجب عليك معرفة أساسيات كتابة أكواد PHP والتي يجب تنتبه إليها عند كتابة الأكواد حتي لاتظهر لك الأخطاء ويتم تنفيذ الأكواد بشكل سليم. -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
ظهرت php أولا في سنة 1995 على يد راسموس ليردورف كانت تسمى وقتها بـ PHP/FI وفي الحقيقة لم تكن لغة برمجه وقتها وانما كانت مجموعه من التطبيقات التي كتبت باستخدام لغة بيرل أطلق راسموس اسم Personal Home Page Tools على هذه التطبيقات، لأنه احتاج فيما بعد إلى تطبيقات أكثر فائده قام راسموس بكتابة تطبيق أكبر باستخدام لغة سي حيث أصبحت قادرة على الاتصال بقواعد البيانات كما أنها كانت تسمح للمستخدمين بتطوير تطبيقات مواقع ديناميكيه بسيطه، اختار راسموس ان تكون الشيفرة المصدرية الخاصة بـ PHP/FI متوفره للجميع لذا كان يمكن لأي شخص ان يستخدمها ويقوم بتحسينها والمشاركة في حل اخطاءها ومشاكلها. كانت PHP/FI وقتها تحوي على بعض الوظائف المتوفرة بالإصدارات الحالية من اللغة، كما أن المتغيرات كانت تشبه متغيرات بيرل، وكانت تركيبها النحوي يشبه بيرل بالرغم من بساطتها ومحدودياتها. في عام 1997 تم إطلاق الإصدار 2.0 من PHP/FI، حيث بلغ عدد مستخدميها آنذاك 50,000 نطاق، وكان هناك مجموعه من الأشخاص الذين يشاركون في التطوير، وتم إطلاق الإصدار الرسمي من 2.0 في شهر نوفمبر من نفس العام بعد العديد من الإصدارات التجريبية بيتا. PHP 3 في عام 1997 تم إعادة كتابة PHP/FI على يد زيف سوراسكي، أندي جتمانز بعدما وجدوا ان PHP/FI 2.0 ليست قويه بما فيه الكفاية من أجل كتابة تطبيق تجارة إلكترونية والذي كانوا يعملون عليه كمشروع تخرج لجامعتهم، كان هناك تعاون بينهم وبين مؤسس اللغة راسموس ليردورف على ان تكون PHP 3.0 هي النسخة الرسمية بعد PHP/FI. أحد أهم الميزات التي تميزت بها بي إتش بي 3 عن سابقتها انها أصبحت قابلة للتوسع وتوفر مع هذا الإصدار العديد من المكتبات والدوال، وأدت قابلية التوسع إلى إقبال العديد من المطورين على تطوير المكتبات الجديدة واضافتها مع اللغة، ويقال ان هذا هو السبب الأساسي للنجاح الذي حققه هذا الإصدار، ومن الميزات الأخرى التي تمت اضافتها في هذا الإصدار هي البرمجة كائنية التوجه. وفي هذا الإصدار تم تغيير اسم اللغة ووضعها تحت اسم جديد وهو بي إتش بي (بدون FI) والذي كان يحمل اختصارا لمعنى جديد مختلف عن الإصدار السابق والمعنى هو “PHP: Hypertext Preprocessor”. تم إطلاق بي إتش بي 3.0 في يونيو 1998 بعد 9 أشهر من الاختبارات. PHP4 في عام 1998، وبعد الانطلاق الرسمي لـ بي إتش بي 3.0 بقليل بدأ زيف سوراسكي وأندي جتمانز بإعادة كتابة أساس لغة بي إتش بي وكان الهدف من ذلك هو تحسين الأداء للبرامج المعقدة والضخمة وتحسين قابلية اللغة للتوسع. المحرك الجديد الذي ظهر بعد إعادة الكتاب تم تسميته بـ محرك زند واسم “زند” مأخود من أوائل حروف أسماء مطوريه، ونجحوا في تحقيق اهدافهم عن طريق هذا المحرك، وتم الإعلان عنه في عام 1999. تعتمد بي إتش بي 4.0 على هذا المحرك وتم الإعلان عن هذا الإصدار من بي إتش بي في مايو 2000، بالإضافه إلى تحسين الأداء في هذا الإصدار احتوى كذلك على مجموعه جديده من الميزات مثل دعمه لعدد أكبر من خوادم الوب، الجلسات، طرق آمنه جديده لمعالجة دخل المستخدم وغيرها. وقد تم إعلان إيقاف تطوير ودعم بي إتش بي 4 في 13 يوليو، 2007[6]. الآن وبعد أن تعرفت علي لغة ( PHP ) وأنها من أقوي وأشهر اللغات البرمجية للمواقع الإلكترونية -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
من خصائص لغة ( PHP ) أنها يمكنها الإتصال بقاعدة البيانات لتسجيل وإضافة البيانات التي يقوم المستخدمون بكتابتها مثل اسم المستخدم Username وكلمة المرور Password بالتكامل مع لغة MySQL الخاصة بقواعد البيانات ,علي عكس ( JavaScript ) . وتتوافق لغة ( PHP ) مع جميع أنواع قواعد البيانات التي ربما سمعت والتي لم تسمع عنها وليس عليك القلق إن كنت تفتقر إلي المهارت الفنية في الاتصال بقواعد البيانات وتبادل البيانات منها وإليها , كل ما عليك هو إدخال اسم قاعدة البيانات ومكانها وستقوم ( PHP ) بجلب جميع البيانات. أهم قواعد البيانات المدعومة من PHP 1- dBASE 2- Informix 3- Ingres 4- Microsoft SQL server 5- mSQL 6- MySQL 7- Oracle 8- PostgreSQL 9- Sybase مميزات لغة PHP 1- لغة سريعة حيث يتم تضمينها أو دمجها داخل أكواد الـ ( HTML ) فتجعل تحميل الموقع أسرع. 2- مجانية ومفتوحة المصدر. 3- سهلة الإستخدام حيث طريقة الكتابة والتكويد سهلة الفهم حتي لغير المبرمجين. 4- لغة مرنة جداً ويمكن أن تعمل علي جميع أنظمة التشغيل. 5- دعم فني قوي حيث يمكنك فتح مناقشات من خلال الموقع الرسمي لـ (php) 6- لغة أمنة جداً حينما تقوم بكتابة الأكواد بالشكل السليم. 7- قابلة للتعديل لكونها لغة مفتوحة المصدر فيستطيع المبرمجين التعديل عليها لتتناسب مع احتياجاتهم. -
سلسة دروس PHP
mennad sofiane replied to mennad sofiane's topic in المنتدى التقني العام و تطبيقات الأوفيس الأخرى
فيك بركة أخي صالح