Home Previous Up Next6.6 لغة البرمجة php
حول
المحتويات
مشاريع
ثواب
مقالات
تنزيل
English

6.6 لغة البرمجة php

محتويات هذا الفصل:

6.6.1 مقدمة

ما يميز لغة php أنها لغة تشبه لغة C إلى حد كبير جدا اضافة إلى صغر حجم مفسر هذه اللغة وقدرته على التطور وأهم تطبيقات هذه اللغة مواقع الإنترنت التفاعلية مثل المنتديات وهي أيضا قادرة على قراءة قواعد البينات المختلفة خصوصاً mysql للمزيد من التفاصيل انظر فصل "6.8 برمجة الويب".

6.6.2 البرنامج الأول

إن الشكل التقلديدي لبرنامج php هو <?php ثم البرنامج ثم > ويمكن أن تتكرر أكثر من مرة وما هو خارجها يرسل إلى الخرج هذا هو برنامجنا الأول

#!/bin/env php
<?php
# this is my 1st php program

/*
 * PHP is a C-like language
 */
printf ("Hello World!!\n"); // ';' is a must
>
وهناك أكثر من طريقة للكتابة رسالة منها printf(FORMAT,...); التي شرحناها أكثر من مرة و print STRING; أو echo STRING; أما صيغة لغة php فهي مشابهة للغة C خصوصاً أن الفاصلة المنقوطة اجبارية مع ملاحظة وضع $ أما المتغيرات وتحتوي نفس الوظائف مكتباتها القياسية مثل printf و fscanf ولكن بعض الوظائف التي تتعامل مع جهاز الدخل القياسي غير موجودة استبدلها بالتي تتعامل مع ملف مع وضع STDIN على أنه الملف وأيضا في php لا يوجد تعريف نوع المتغير أو اعلان عن نموذج الوظائف declerations and functions prototypes ولا يوجد في php وظيفة أساسية main بل كل ما يكتب خارج الوظائف الأخرى يحسب main

 تحذير

أكثر الأخطاء شيوعا هي نسيان الفاصلة المنقوطة

 تحذير

printf وشبيهاتها في php لا تأخذ %i استعمل %d بدلا منها

6.6.3 المزيد من التفاصيل

لتعريف وظيفة اكتب function ثم أي اسم ثم أقواس مثلا anyname() ثم حاصرات { } وبينهما الكود واذا كانت هذه الوظيفة تأخذ معاملات ضعها داخل الأقواس ولا تنسى $ ودون ذكر نوعها مثلا function max($a,$b) { if ($a>$b) return $a; return $b;} ويمكنك أن تكتب هذا في أي مكان من الملف وتناديه من أي مكان أنا أفضل أن تكن في آخر الملف ولكنها ستكون أسرع لو كانت في أوله

#!/bin/env php
<?php
// START OF MAIN 
printf ("Enter an integer: "); 
fscanf(STDIN,"%d",$a);
count_them($a)
// END OF MAIN 
function count_them($j) {
        for($i=0;$i<$j;++$i) {
                printf ("I'm counting %d\n",$i);
        }
}
>

لاحظ أن for هي بنفس طريقة C وأيضاً switch و do و while و if بل وحتى الشرط المختصر (Condition)?Statment1:Statment2 مثلا $c=($a>$b)?$a:$b;

6.6.4 خصوصية php

التنصيص في php نوعين قوي وضعيف تماما كما في bash و perl على عكس لغة c مثلا printf ("$a"); ستطبع قيمة المتغير a بينما printf ('$a'); ستطبع $a

اذا كنت تريد وضع رسالة طويلة في متغير (لطباعته مثلاً) يمكنك استعمال استعمل <<< ثم أي كلمة غير موجودة في النص لتكون علامة النهاية END OF STRING مكان بداية التنصيص وينتهي التنصيص بسطر يبدأ مباشرة بتلك العلامة (بدون أي مسافات أو أي شيء آخر) وتكمن فائدتها في عمل صفحات الإنترنت حيث تريد انتاج كود html دفعة واحدة وتسمح هذه الطريقة بالتعويض مثلاً

$fruit="Apples";
$str1 = <<<EOS
	Welcome in PHP
	this is a very long string
	do you like $fruit ?
	me I like $fruit
EOS;
print ("$str1");
لجمع أكثر من نص نستخدم علامة النقطة مثلا $str3=$str1.$str2 لتعريف منظومة اكتب $avar = array(1,'two',"three"); ولتحديد عنصر فيها استخدم [] بعد اسم المنظومة مثلا $avar[0] والسلسلة النصية عبارة عن منظومة كما في لغة C مثلا $str="Ali"; print($str[2]); // this gives 'i'

 تحذير

يتم تحويل نوع المتغير تلقائيا في php وهذا جيد إلا أنه قد يسبب لك مشاكل مثلا افرض أن $s="after 0 comes 1" وكنت تعمل حلقة while($s[$i++]) فإنها ستتوقف عند الصفر وليس كما هو متوقع عند نهاية السلسلة لأن قيمة الصفر تعني false

6.6.5 التعامل مع الملفات

هناك الكثير من الوظائف التي تشبه وظائف السي القياسية(مع بعض الإختلاف) مثل file_exists("FILENAME"); و filesize("FILENAME"); و unlink("FILENAME"); و و لفتح ملف موجود في طور القراءة "r" نستخدم $file=fopen("FILENAME","r"); ويمكن استخدام أطوار أخرى مثل "r+" طوور القراءة وتنشيء الملف إذا لم يكن موجوداً "w" طور الكتابة فقط "w+" الكتابة والقراءة "a" طور الإضافة "a+" طور الإضافة (قراءة وكتابة) والفرق بين الكتابة والإضافة أن الأولى تضع الموشر على بداية الملف فتسبب الكتابة مسح المعلومات القديمة أما الإضافة فتضع المؤشر في آخر الملف ويمكن استخدام هذه الوظائف لعمليات القراءة والكتابة $var=fread($file,$maxl); أو fwrite($file,$password1,$maxl); أو fputs($file,"STRING"); أو fprintf($file,"FORMAT",...); أو fscanf($file,"FORMAT",...); أو ولتغير مكان المؤشر نستخدم fseek($file,$offset,SEEK_SET); حيث $offset هي الإزاحة بالبايت عن بداية الملف أو fseek($file,$offset,SEEK_END); حيث $offset هي الإزاحة بالبايت قبل نهاية fseek($file,$offset,SEEK_CUR); حيث $offset هي الإزاحة بالبايت عن الموقع الحالي وفي الحالات الثلاثة نبدأ العد من الصفر ولمعرفة الموقع الحالي يمكن أن نستخدم $offset=ftell($file) ويجب أغلاق الملف ب fclose($file);

و يمكنك استخدام split لفصل نص إلى منظومة من السلال النصية باعتماد فاصل معين مثلا $array1=split(",",$str,$maxn); تفيد هذه العملية عند قراءة ملف اعدادات أو ماشابه

 تحذير

fread و fwrite تنهيان العملية عند انتهاء النص أو الوصول إلى الرقم المحدد أيهما يأتي أولاً ويعتبر الرقم هذا اختياري ومفضل

6.6.6 التعامل مع ملفات xml

يفترض أن أكون قد تحدثت عن صيغة ملف xml قبل هذا المكان على أي حال هو ملف نصي يستخدم لتبادل المعلومات بين البرامج أو كقاعدة بيانات وهو بسيط التركيب وهو حساس لحالة الحروف إن كبيرة أو صغيرة لمزيد من التفاصيل عن هذه الصيغة انظر فصل "6.8 برمجة الويب"

للتعامل مع ملف xml أي اعرابه وتفسيره وتقطيعه وأخذ المعلومات منه نستخدم نقوم بفتح الملف ب $fp=fopen($filename,"r") بتحميل الملف إلى متغير في الذاكرة بأي طريقة مثل fread ثم نقوم بحجز مفسر xml $myxml_parser=xml_parser_create(); التي تعيد مؤشر نقوم باستخدامه فيما بعد ثم نقوم بكتابة وظيفة لتستلم المعلومات واحدة تستلم البداية <mytag> وتكون على صيغة function startElement($parser, $name, $attrs) حيث $name هو اسم ال tag و $attrs هي منظومة الصفات الموجودة بداخله وأخرى تستلم النهاية </mytag> وتكون على صيغة function endElement($parser, $name) حيث $name هو اسم ال tag ونعينها (نطلب ارسال المعلومات إليها) باستعمال أمر xml_set_element_handler($myxml_parser, "startElement", "endElement"); حيث startElement و endElement هي أسماء الوظائف ثم نكتب وظيفة لتستلم البيانات الموضوعة بين تلك ال tag باستعمال xml_set_character_data_handler($xml_parser, "characterData"); حيث characterData هي الوظيفة التي ستستلم هذه البيانات ولها الصيغة التالية function characterData($parser, $data) وأخيرا نطلب منه أن يبدأ العملية كلها باستعمل xml_parse($xml_parser, $data, feof($fp) حيث $data هو المتغير الذي حملناه من الملف الذي يشير إليه $fp

للمهتمين العرب بهذه يمكنك أن تزور موقع www.daif.net، إليك المزيد من الروابط

www.php.net
www.zend.com
www.phpbuilder.com
www.phpworld.com
http://php.resourceindex.com
www.phpwizard.net
http://phpclub.unet.ru
www.hotscripts.com/php
www.phorum.org
هناك عدد قليل من المواقع التي توفر hosting مجاني لصفحات php بعضها يشترط أن تكون بالإنجليزية وتراجع يدوياً ولكن موقع www.lycos.co.uk لا يضع أي عراقيل أمام اللغة أو استخدام php كما أن إدارة الموقع سهلة ويوفر مساعدة حول php.

المحتويات
حقوق النسخ والملكية الفكرة
ما هو لينكس؟
كيف تركب نظام لينكس؟
حقوق النسخ المرفوعة
وثائق التخويف

عرب-آيز
مجتمع لينكس العربي
موسوعة ثواب
موسوعة ويكيبيديا
تعريف البرمجيات الحرة
تعريف مفتوحة المصدر
LinuxToday
Linux.org
Linux.com
SlashDot
FreshMeat
LWN.net
توزيعات لينكس
النسخة الإسلامية لأوبنتو
عَرَبيان
جواثا (أول مسجد في أوروبا)
المزيد من التوزيعات هنا

إسلاميات
    برامج:
بريمج أوقات الصلاة
بريمج التقويم الهجري
    صوتيات:
محاضرات: قصص الأنبياء (نبيل العوضي)
أناشيد
اطلب نسختك مجاناً
لكي تصلك أقراص لينكس أوبونتو Ubuntu أصلية مجاناً والتوصيل مجاناً لن تدفع فلساً واحداً ولن تجبر على رؤية دعايات. كل ما عليك هو أن تنقر هنا.
مقالات
    تقنية:
تسجيل وتحويل الصوتيات
تعريف الماسح الضوئي في لينكس
    ساخرة:
من أجل ذلك لا تقرأ
الفيلة والصراع العربي الإسرائيلي
بلاغات
التبليغ عن إعلانات غير مرغوبة
عثرات وأخطاء إملائية
وصلات لا تعمل:

 

ننصح باستخدام متصفحات الوب الحرة، جرب ثعلب النار الآن

يمكنك الحصول على الكثير من البرامج الحرة عالية الجودة من هنا مجاناً
proud to be 100% Microsoft FREE GNU FDL
التدخين حرام

كن كحامل المسك ولا تكن كنافخ الكير

Generously Hosted by www.JadMadi.net

Previous Up 6.6 لغة البرمجة php Next
Copyright © 2007, Muayyad Saleh AlSadi