الأحد، 19 يناير 2014

شرح كيفية التعامل بين json و php

شرح كيفية التعامل بين json و php


مكتبة JSON هي أحدى أقوى المكتبات التي تعطي اللغات معياريه لمشاركة البيانات بين البرامج المكتوبه بلغات مختلفه أي انها مكتبه لمعالجة البيانات و مشاركتها وتشبه إلى حداً ما وظيفة XML و لكن أنا أرى أنها أقوى لبساطتها ولتكاملها العجيب بشكل مباشر ومبسط مع اللغات الأخرى.



عندما تريد ان تعرف كيفية التعامل مع json و php فان اهم شيء يمكنك معرفته هو انه عندنا 3 دوال رئيسية، والان فلنذهب لنلقي نظرة على تلك الدوال

كما أسلفت القول فالدوال المستخدمه في JSON مجرد ثلاث وهن json_decode و الأخرى json_encode والأخيرة json_last_error فقط ثلاث و شرح وظائفهم مدعم بالأمثله العملية كالتالي:
كود:


 // Example 1 $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; ------------------------------------------- object(stdClass)#1 (5)  var_dump(json_decode($json)); {     ["a"] => int(1)     ["b"] => int(2)     ["c"] => int(3)     ["d"] => int(4)     ["e"] => int(5) }

في هذا المثال قامت الداله json_decode بتحويل مصفوفة البيانات الكائنية الى PHP Objects يمكننا تمرير الطلب بين المعطيات كما نمرر الطلب بين المتغيرات Variables في التصنيفات Classes و هذه بوجهة نظري طريقة معقده و سيئة إلى حداً ما للتعاطي مع البيانات المتوفره كوني أريد أن أتعامل مع شيء أكثر ليونه و يقبل المعالجة بشكل أكبر و أسهل, هنالك الطريقة الأخرى لتحويل البيانات الى مصفوفة PHP Array بشكل مباشر وهي الطريقة التي أفضلها لأنها أيسر للعمل وتعطيني كم أكبر من القدره في التعامل مع المعطيات و البيانات وهي كما نطبق في المثال الثاني
كود:


$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json, true)); ------------------------------------------ array(5) {     ["a"] => int(1)     ["b"] => int(2)     ["c"] => int(3)     ["d"] => int(4)     ["e"] => int(5) }

هنا تم تحويل المعطيات إلى مصفوفة PHP Array توازي في تنظيمها النمطي JSON و في ذلك تسهيل كبير للإستخدام أي آنك ستقوم بمعالجة البيانات بشكل مصفوفة عاديه و تستطيع أن تحافظ على نمطها الأصلي و أن تقوم بإعادتها بعد المعالجة إلى نوعها الأول JSON وهذه ليونه كبيره في المعالجة و يوفر على المطور الكم الكبير من العناء وخصوصاً في مجال تخزين البيانات وفرزها و فهرستها.
بالنسبه للدالة الثانيه json_encode في تحويل العملية الى العكس الأخر وهي من PHP Array إلى JSON من جديد و هذا هو الفصل الذي يعطينا الفائدة من إستخدام هذه المكتبة في PHP لكي نستطيع توليد بعض المعلومات كملف أو ما يقابله لنستطيع تمرير المعلومات و معالجتها, لن أطيل الحديث وسأتوجه إلى الشرح العملي وهو كالتالي
كود:


$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ------------------------------------------ {"a":1,"b":2,"c":3,"d":4,"e":5}

هذا يعيد لنا النص إلى شكله الأول كيف حصلنا عليه ليتم إستخدامه أو تخزينه في قاعدة بيانات لتتم إعادة إستخدامه ليوفر لنا الحاجات من تخزين البيانات أو تمرير المعلومات بين البرامج المختلفة بمختلف لغات برمجتها, لا تحتمل الدالة الشرح الكثير بقدر التطبيق المتكرر لفهم العملية بشكل أعمق فهمي بسيطة الإستخدام و عظيمة الفعل.
الآن إلى الدالة الأخيرة و هي json_last_erroeهذه الدالة تقوم بإرجاع الأخطاء التي تحصل وقت التنفيذ فكما نعلم إن لكل تطبيق برمجي إحتمال حدوث خطاء معين قد يوقف العملية كلها فلذلك تم توفير هذه الدالة مع بعض الجمل الثابته من نوع Define سأختصر الحديث الكثير بتوفير مثال فعادتاً مثال واحد يغني عن أللف سطر من الشرح
كود:


// A valid json string $json[] = '{"Organization": "PHP Documentation Team"}';  // An invalid json string which will cause an syntax  // error, in this case we used ' instead of " for quotation $json[] = "{'Organization': 'PHP Documentation Team'}";  foreach ($json as $string) {     echo 'Decoding: ' . $string;     json_decode($string);      switch (json_last_error()) {         case JSON_ERROR_NONE:             echo ' - No errors';         break;         case JSON_ERROR_DEPTH:             echo ' - Maximum stack depth exceeded';         break;         case JSON_ERROR_STATE_MISMATCH:             echo ' - Underflow or the modes mismatch';         break;         case JSON_ERROR_CTRL_CHAR:             echo ' - Unexpected control character found';         break;         case JSON_ERROR_SYNTAX:             echo ' - Syntax error, malformed JSON';         break;         case JSON_ERROR_UTF8:             echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';         break;         default:             echo ' - Unknown error';         break;     }      echo PHP_EOL; }

سوف يظهر عندنا المرتجع كما يلي
كود:


Decoding: {"Organization": "PHP Documentation Team"} - No errors Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON

المثال هذا يشرح كيفية الإستخدام لهذه الدالة التي تقوم بتوقع الاخطاء بحسب الكلمات المحجوزه بشكل مسبق .. فقط إقراء المثال و تبينه بشكل صحيح ستأخذ منه فكرة العمل كاملة للدالة مع الكلمات المحجوزة.
أعتقد آن الشرح كافي كونه موجه للمطورين و ليس لمتعلمي اللغة أو اسلوب البرمجه بشكل مبدئي و لهذا لن أخوض كثيراً و جدير بالذكر بأن جميع الأمثله قمت بأخذها بشكل مباشر من الموقع الرسمي للغة PHP.NET و أيضاً آن هذه التقنيه مستورده من Javascript و معنى JSON JavaScript Object Notation وهذا يوضح المعنى..

اتمنى ان يكون كل واحد قد استفاد من هذه المعلومات، واستفاد
وعرف كيف يتم التعامل مع json و php
الى هنا يكفي هذا القدر من كيفية التعامل مع json و php
اتمنى ان تكونوا دائما بخير

الجمعة، 17 يناير 2014

كيف اجمع بين المتغيرات والنصوص في php


كيف اجمع بين المتغيرات والنصوص في php


كيف اقوم بطباعة متغيرات و نصوص ووسوم HTML في جملة الطباعه echo

في الحقيقة الموضوع سهل جدا، يحتاج الى بعض الممارسة، فهكذا هي البرمجة، عليك دائما ان تحبها وان تبدا تكتب الاكواد

كيف اقوم بالجمع بين المتغيرات والنصوص في echo

حسنا سوف نتعلم هذا من خلال الامثلة، في كل مثال سوف ازيد لك شيئا حتى تصل الفكرة بسلاسة وبشكل كامل

اولا طباعة نص في جملة echo
Echo "HELLO PHP";
هذه الجملة ستقوم بطباعه نص HELLO PHP على الشاشة وهذا معروف.

الان اريد ان اضيف وسم HTML الى هذا النص واقوم بالطباعة
Echo "HELLO PHP <br /> YOU ARE GOOD";
كما ترى اذا اردنا ان ندخل وسوم HTML في جملة الطباعة فاننا نعاملها كالنصوص تمام، ويجب كتابتها بين علامتي تنصيص، والخلاصة هي ان وسوم HTML في جملة الطباعة تعامل معاملة النصوص، وسوف يخرج لي من الجملة السابقة التالي
HELLO PHP
YOU ARE PROGRAMMER

الان اريد ان اضيف متغير واقوم بالطباعة
اذا اردت ان تطبع متغير ونص في نفس الجملة فهذا سهل جدا اذا استخدمت (  . ) النقطة، ووظيفة النقطة او دوت هي ان تقوم بالجمع بين المتغيرا والنصوص في جملة الطباعة، وهي تستخدم كالتالي
$text = 5 ;
Echo "repeat" . $text . "times";

هكذا سيطبع لك
Repeat 5 times

لناخذ مثال اخر
$text = "ebraheem";
$text2 = "adnan";
Echo "HELLO " . $text1 . " in php <br />";
Echo "HELLO " . $text2 . " in php";

هنا سنحصل على
HELLO ebraheem in php
HELLO adnan in php
وقد قمت بتلوين قيمة المتغيرات باللون الاحمر حتى تميزها

ارجو ان تكون قد استفدن من هذا الموضوع وشكرا لك على المتابعة


الخميس، 16 يناير 2014

الفرق بين echo و print في لغة php


الفرق بين echo و print في لغة php هو:
جملة echo : يمكن ان تطبع واحد او اكثر من النصوص والمتغيرات في نفس السطر.
جملة print : تقوم بطباعة واحد فقط من النصوص والمتغيرات في السطر الواحد.

والان لنوضح هذا بشكل افضل حتى تتبين لك الفكرة بشكل كامل، وفي نهاية الدرس ساقول لك سرا صغيرا سيريح راسك.

ساقوم الان بشرح جملة الطباعة echo واوضح لك كيفية استعمالها

جملة الطباعة echo في php
يمكن ان تقوم بطباعة سلسلة واحدة من النصوص والمتغيرات او اكثر في سطر واحد ولناخذ مثالا او اكثر

<?php
echo "<h2>انا اتعلم php!</h2>";
echo "السلام عليكم!<br>";
echo "انا سابح محترف في برمجة php!<br>";
?>
هنا ترى انه يمكن ان تطبع نصوص من وسوم HTML بدون مشاكل

طباعة المتغيرات باستخدام جملة echo في php
الان جملة echo تقوم بطباعة المتغيرات بطريقة سهلة جدا كالاتي

<?php
$txt1="اتعلم من المهد";
$txt2="كل يوم";


echo $txt1;
echo "<br>";
echo "5 ساعات  $txt2";

?>
كما يمكنك ايضا ان تقوم بطباعة متغيرات ونصوص وتجمع بينهم في نفس السطر، وقد وضحنا ذلك

جملة الطباعة print في php
تعمل نفس عمل echo لكن لا يمكنك ان تقوم بطباعة اكثر من سلسلة نصية واحدة في نفس السطر، يعني لكي تطبع اكثر من سلسلة نصية يجب عليك ان تقوم بعمل اكثر من جملة print لذلك لا يفضل استخدامها، فجملة echo تغنيك بشكل كامل عنها

وسوف نتعلم في مقالة اخرى كيف نجمع بين النصوص والمتغيرات في جملة echo

متى استخدم echo ومتى استخدم جملة print
حسنا انا ساقول لك شيئا كما وعدتك يريح لك راسك من كل هذا الهم، وهو انني الى الان لم استخدم جملة print ابدا في برمجياتي، فيمكنك في كل الاوقات ان تستخدم جملة echo لانها تمتلك كافة الامكانيات في الطباعه، وتريح راسك.

طبعا هناك فرق ايضا بين  print و print_r وهو ان print_r تستخدم لطباعه المصفوفات.
ستجد شرح ل جملة print_r في مقالات اخرى في هذا الموقع، وهي جملة مفيدة جدا عندما تريد ان تتعامل مع المصفوفات، الى الان يكفي ان تكون قد استوعبت كيفية عمل جملة echo لانها مهمة  وعليك ان تقوم بالتدرب على الطباعة بعض النصوص حتى تتكمن منها. فلا شيء في البرمجة يضاهي ان تقوم بكتابة الكود بيدك انت

الأربعاء، 15 يناير 2014

البداية في تعلم php للمبتدئين

اغلب الناس عندما يريد ان يتعلم لغة برمجة يضيع بين المواقع بلا اي مرشد او دليل، ويبدا يقرا من هنا وهناك ويحاول ان يفهم كل حرف امامه واذا لم يفهم حرفا فانه يصلب بالاحباط الشديد لذلك، ويظن انه غير قادر على ان يصبح مبرمجا ابدا، لكن هنا في هذا الموقع سوف نساعدك وببساطة وسهولة على ان تصل بشكل اسهل الى احتراف هذه اللغة الرائعه، خصوصا ان الشخص الذي يكتب الان كان افشل شخص في البرمجة في العالم، لا اظن ان هناك شخصا يستطيع ان يفشل كما كنت افشل انا، لقد كنت فاشلا عالميا، لكنني لم اكن يوما خاسرا ابدا، والحمد لله الان لدي معرفة متواضعة استطيع من خلالها ان اقدم اللغة للناس بحيث يدخلون الى موقعي ولا يخرجون منه الا وهم افضل حالا من وقت دخولهم، انا متاكد من هذا، ففاقد الشيء يعطيه، انا عندما كنت في البداية عانيت كثيرا خصوصا ان المواقع العربية احيانا لا تعطيك ما تريد، و من الصعب ان تجد الاشياء فيها، خصوصا في البدايات، لهذا ساعمل على ان اجعل من خلفي لا يقعون في الاخطاء التي وقعت انا فيها، وسادلهم ان شاء الله تعالى بقدر ما استطيع

اول نصيحة لتعلم لغة php
لا تبدا تتلاطم بين المواقع محاولا معرفة كل شيء، اذا عليك ان تجد موقع فيه شرح سهل للاساسيات، وتبدا تنظر في هذا الموقع وتتعلم منه وتطبق، وتتطور في كل يوم. يعني اول نصيحة في تعلم بي اتش بي للمبتدئين هي ان تركز على موقع واحد للتعليم
طبعا هناك موقع اجنبي اعرف هوازكيه بشده فهو موقع رائع وهذا هو الرابط لتعلم البي اتش بي
طبعا سيعلمك هذا الموقع الاساسيات ويبدا معك من الصفر، يمكنك ان تاخذ فيه لنقل 10 ايام، ركز عليه كل التركيز وتعلم كل ما يخص لغة بي اتش بي بداخله
واذا وجدت مواقع عربية قوية اكيد سوف اضعها للفائدة، لكن في الحقيقة الى الان لا اعرف فانا بدات اتعلم بالاجنبي

ثاني نصيحة لتعلم php
حاول ان تجد ناس لديهم نفس ميولك ويتعلمون لغة بي اتش بي، اقول لك هذه اهم نصية، واهم من اي شيء اخر، سيحفزونك كثيرا للنجاح، عندما يخطر على بالك استفسار، ستجدهم حولك يدلونك، يشجعونك، ترى اعمالهم وتعرض عليهم اعمالك، ابحث على فيس بوك، ادخل منتديات تعليم البي اتش بي وابحث عن اصدقاء لهم نفس الميول، تاكد ان هذا الشيء سوف يفيدك كثيرا كثيرا

اسف للاطالة كانت هذه مقدمة بسيطة لمن يريد ان يتعلم لغة البرمجة php

طبعا ان شاء الله تعالى سيكون هذا الموقع عبارة عن شرح لدوال لغة البي اتش بي بالعربي حتى يسهل على الناس الوصول الى هذه الدوال واستخدامها