إشترك معنا ليصلك جديد الموقع

بريدك الإلكترونى فى أمان معنا

الأحد، 1 مارس 2015

البرمجة بلغة php : التعامل مع الوقت والتاريخ في لغة PHP

البرمجة بلغة php : التعامل مع الوقت والتاريخ

ان للوقت و التاريخ اهمية كبيرة  جدا و خصوصا في عالم الويب (تاريخ إضاافة مقال , تعليق أو آخر تحديث للموقع ...)
 , وبالتاكيد تُوفر لغة php  امكانية الحصول على الوقت والتاريخ .
و للحصول على الوقت أو التاريخ في php  نستخدم الدالة date التي تُعيد الوقت أو التاريخ على شكل سلسلة نصية string
 حسب التنسيق المُمرر اليها :
date($format, $timestamp);

الوسيط الول المُمرر اليها هو عبارة  عن نص يحوي التنسيق المُراد اظهار التاريخ أو الوقت به , أما الثاني هو وسيط اختياري الذي يمثل بصمة الوقت (سيتم التطرق الى بصمات الوقت لحقا ).
 جدول التنسيقات التي يمكن استخدامها مع دوال الوقت والتاريخ في  php :

 الحرف d :
يُعيد رقم اليوم من الشهر , وتتراوح قيمته بين 1 - 01 وللحصول على رقم اليوم بدون اصفار استخدم التنسيق j .

الحرف m :
يُعيد رقم الشهر , وتتراوح قيمته بين  12 - 01
وللحصول على رقم الشهر بدون اصفار  استخدم التنسيق n

الحرف W :
يُستخدم للحصول على رقم اليوم من الاسبوع , وتتراوح قيمته بين 0 (الاحد) و 6 (السبت)

الحرف h :
يُستخدم للحصول على الساعة الحالية لكن بنظام 12 ساعة .

الحرف H :
يُستخدم للحصول على الساعة الحالية لكن بنظام 24 ساعة .

الحرف i :
يُعيد الدقائق الحالية .

الحرف s :
يُعيد الثواني الحالية .

الحرف Y :
يُعيد رقم السنة الحالية بشكل اربعة ارقام .


القائمة تطول لكن هذه هي اشهر دللت الحرف و بالطبع يمكنك العودة  الى php.net للاطلاع على القائمة كاملة , مثال عن استخدام الدالة date :
<?php
echo date('H : i : s');
?>

يقوم المثال السابق بإظهار الوقت الحالي على الشكل 09 : 04 : 11

مثال اخر :
<?php
echo date('Y / m / d');

?>

يُعيد المثال السابق التاريخ الحالي على الشكل . YYYY / MM / DD

طريقة طباعة التاريخ باللغة العربية :

كما ذكرنا سابقا يلزم ذكر الوقت والتاريخ عند كتابة المقالت او التعليقات , ولظهار التاريخ باللغة

العربية سنستخدم عدة  دوال :

الدالة الولى تحويل رقم الشهر الى اسمه : أي عندما يكون الشهر الخامس مثل يكون اسمه أيار

أو مايو (لربما تختلف مسميات الشهر من بلد الى آخر) , وتكون على الشكل التالي :
<?php
header('Content-Type: text/html; charset=UTF-8');
function month_name()

{
$monthes = array(
,'كانون الثاني' <= 1
,'شباط' <= 2
,'اذار' <= 3
,'نيسان' <= 4
,'أيار' <= 5
,'حزيران' <= 6
,'تموز' <= 7
,'اب' <= 8
,'أيلول' <= 9
,'تشرين الول' <= 10
,'تشرين الثاني' <= 11
'كانون الول' <= 12
);
return $monthes[date('n')];
}
echo month_name();
?>

حيث انشئنا مصفوفة كل مفتاح أو مُعرف كل عنصر مرتبط مع اسم الشهر و باستخدام التنسيق n حصلنا على رقم الشهر . 
الدالة الثانية اظهار اسماء ايام السبوع : اي على الشكل (الجمعة , السبت ...) :

<?php
header('Content-Type: text/html; charset=UTF-8');
function day_name()
{
$days = array(' ;('الاحد', 'الثنين', 'الثلثاء', 'الربعاء', 'الخميس', 'الجمعة', 'السبت
return $days[date('w')];
}
echo day_name();
?>

الان لنجمع الكواد مع بعضها :
<?php
header('Content-Type: text/html; charset=UTF-8');
printf('%s - %s - %d:%d %d', day_name(), month_name(), date('H'),
date('i'), date('Y'));
function month_name()
{
$monthes = array(
,'كانون الثاني' <= 1
,'شباط' <= 2
,'اذار' <= 3
,'نيسان' <= 4
,'ايار' <= 5
,'حزيران' <= 6
,'تموز' <= 7
,'اب' <= 8
,'ايلول' <= 9
,'تشرين الول' <= 10
,'تشرين الثاني' <= 11
'كانون الول' <= 12
);
return $monthes[date('n')];
}
function day_name()
{
$days = array(' ;('الحد', 'الثنين', 'الثلثاء', 'الربعاء', 'الخميس', 'الجمعة', 'السبت
return $days[date('w')];
}
?>
المثال السابق سيطبع الوقت بالطريقة التالية : الجمعة - ايار - 16:23 - 2013 .

بصمة الوقت لنظام اليونكس (The unix timestamp) :

باختصار هو عدد الثواني منذ منتصف ليلة رأس السنة عام 1970 , ولتوليد هذه البصمة استخدم الدالة time 
التي تُعيد الوقت الحالي , أما اذا اردت ان تحصل على بصمة الوقت لاي تاريخ تريد استخدم الدالة mktime حسب الشكل التالي :
mktime($hour, $minute, $second, $month, $day, $year);

امثلة عن استخدام الدالتين السابقتين :
<?php
echo date("m-d-Y H:i", time());
echo '<br>';
echo date("m-d-Y H:i", mktime(14, 23, 11, 11, 6, 2009));
?>

الدالة  getdate :
تُعيد هذه الدالة التاريخ والوقت على شكل مصفوفة , وتقبل وسيطا واحدا اختياريا هو بصمة الوقت :
<?php
$timestamp = mktime(14, 23, 11, 11, 6, 2009);
$date = getdate($timestamp);
print_r($date);
/*
Array
(
[seconds] => 11
[minutes] => 23
[hours] => 14
[mday] => 6
[wday] => 5
[mon] => 11
[year] => 2009
[yday] => 309
[weekday] => Friday
[month] => November
[0] => 1257513791
)
*/
?>
الحصول على الوقت بتوقيت غرينتش :
كما لحظت سابقا , إن لغة php تقوم بحساب الوقت والتاريخ وفق وقت وتاريخ السيرفر المُستضيف , أي بمعنى آخر عندما تستخدم الدالة date  في برنامج مُستضاف على سيرفر في السعودية فإن النتائج تختلف عن استخدام نفس الدالة وفي نفس الوقت على سيرفر موجود في المغرب مثلا , ولهذا يُفضل الحصول على الوقت بتوقيت غرينتش ومن ثم تحويلها الى المنطقة المطلوبة :

<?php
echo gmdate("m-d-Y H:i", time() + 2 * 3600);
?>
لقد اضافنا في المثال السابق ساعتين من الزمن للحصول على الوقت في سوريا مثل على اي سيرفر تم اعداد الوقت والتاريخ فيه بشكل صحيح .

الدالة microtime  :

تُعيد الدالة السابقة بصمة الوقت الحالية لكنها مقدرة  بالملي ثانية ول تقبل هذه الدالة أي وسائط .
حساب العمر عن طريق تاريخ الميلد : في بعض الحيان يُطلب من المستخدم ان يُدخل تاريخ ميلده عند التسجيل في الموقع , ولحساب عمر المستخدم , يوجد عدد من الطرق اسهلها - لكنها غير دقيقة - هي انقاص بصمة وقت ميلد المستخدم (عن طريق استخدام الدالة mktime التي سبق شرحها) من بصمة الوقت الحالية , ومن ثم توليد رقم السنة عن طريق الدالة date التي يمرر
لها التنسيق Y ومن ثم انقاص 1970 (لن بصمة الوقت تبدأ من عام 1970 ) من الناتج كما يلي : 

<?php
$time = time() - mktime(0, 0, 0, 5, 21, 1995);
echo date("Y", $time) - 1970;
?>


أو يمكن قسمة فرق الوقت على ( 60 * 60 * 24 * 365 ) اي سنة كاملة مقدرة  بالثواني :

<?php
$time = time() - mktime(0, 0, 0, 5, 21, 1995);
echo floor($time / (60 * 60 * 24 * 365));
//echo floor(time() - mktime(0, 0, 0, 5, 21, 1995) / (31536000));
?>

تم استخدام الدالة floor لتقريب الرقم الى اقرب قيمة دنيا .

ملاحظة: 
 يفضل حفظ الوقت في قواعد البيانات - أو أي وسيلة حفظ - على شكل timestamp  في حقل عدد صحيح Int وليس على شكل date  لسهولة إستخراج الوقت والتاريخ الذي تريده بسهولة وإجراء العمليات عليه .

وكأحد التطبقات نلحظ في بعض المواقع يتم عرض الزمن المنقضي لنشر موضاوع - أو تعليق أو
شئ أخر - بالشكل التالي "منذ 3 أيام , منذ 1 ساعة , منذ 3 أسابيع , منذ 5 شهور , منذ 2 سنة
وهكذا ..."

إتفقنا أننا سنقوم بتخزين الوقت على شكل timestamps وإل ستقوم بإستخدام دالة mktime لتحويل التاريخ إلى بصمة الوقت
الفكرة  هي أننا سنقوم بطرح قيمة بصمة الوقت لتاريخ النشر -أو الضاافة أو أي شيئ- من الوقت الحالي بإستخدام دالة time وناتج الطرح بعملية قسمة بسيطة نستطيع إستخراج كم "ثانية,دقيقية,ساعة,يوم,اسبوع,شهر, سنة" مضت منذ ذلك الوقت
 والكود التالي يقوم بتنفيذ ما سبق :

<?php
$arr = array( 's'=>'Second',
'i'=>'Minute',
'h'=>'Hour',
'd'=>'Day',
'w'=>'Week',
'm'=>'Month',
'y'=>'Year',
);
$retArr = getElapsedTime(mkTime(0,0,0,'2','1','2013'));
echo $retArr[1].' '.$arr[$retArr[0]];
function getElapsedTime($t)
{
$timeDiff = time()-$t;
if($timeDiff < 60)
{
$arr[0] = 's';
$arr[1] = $timeDiff;
}
else if(($temp=(int)($timeDiff/60)) < 60)
{
$arr[0] = 'i';
$arr[1] = $temp;
}
else if(($temp=(int)($timeDiff/(60*60))) < 24)
{
$arr[0] = 'h';
$arr[1] = $temp;
}
else if(($temp=(int)($timeDiff/(60*60*24))) < 7)
{
$arr[0] = 'd';
$arr[1] = $temp;
}
else if(($temp=(int)($timeDiff/(60*60*24*7))) < 4)
{
$arr[0] = 'w';
$arr[1] = $temp;
}
else if(($temp=(int)($timeDiff/(60*60*24*7*4))) < 12)
{
$arr[0] = 'm';
$arr[1] = $temp;
}
else
{
$arr[0] = 'y';
$arr[1] = $temp;
}
return $arr;
}
?>

الكود واضاح تقريباً العملية ما هي إل قسمة لستخراج اليام أو الشهور ... 

ملحظة : يمكن إسناد قيم لمتغيرات في الشروط فتتم السناد والمقارنة معاً كما هو الحال مع المتغير temp $

إذا أردنا إستخدام الكود السابق مع اللغة العربية فنحن نعلم أن المعدود يختلف على حسب
العداد فالعداد 1 و 2 يطابقا المعدود في التذكير والتأنيث ومن 3 إلى 9 يخالف العدد المعدود
تذكيراً وتأنياً

والعدد 10 يتبع حكم العداد من 3:9 إذا كان مفرداً واذا جاء مركب يتبع حكم العداد 1 و 2
إلخ ...

إذا أردنا إستخدام الكود السابق مع اللغة العربية فنحن نعلم أن المعدود يختلف على حسب
العداد فالعداد 1 و 2 يطابقا المعدود في التذكير والتأنيث ومن 3 إلى 9 يخالف العدد المعدود
تذكيراً وتأنياً
والعدد 10 يتبع حكم العداد من 3:9 إذا كان مفرداً وغذا جاء مركب يتبع حكم العداد 1 و 2
إلخ ...
عموماً لن نحتاج كثيراً من هذا القواعد هنا لننا لن نستخدم التفقيط مع الرقام ولكن
سنستخدمها بصورتها الرقمية فسيتبع الرقم 1 و 2 والعداد ما زاد عن 10 الفراد كالتالي :
1 ثانية , 2 ثانية , 11 ثانية , 2 دقيقة , 20 دقيقة , 2 سنة , 100 سنة , 1 اسبوع , 2 اسبوع , 2 شهر ,
12 شهر , 1 يوم , 30 يوم
- والعداد من 3 إلى 9 يكون المعدود جمع كالتالي : 3 ثوان , 9 ثوان , 5 دقائق , 9 ساعات , 3
اسابيع , 4 شهور , 5 سنوات أو سنين .
وعلى هذا سيكون الكود على النحو التالي :

<!DOCTYPE html>
<html dir="rtl">
<head>
<meta charset="utf-8"/>
</head>
<body>
<?php
$arr = array( 's'=>' ,'ثانية
'S'=>' ,'ثوان
'i'=>' ,'دقيقة
'I'=>' ,'دقائق
'h'=>' ,'ساعة
'H'=>' ,'ساعات
'd'=>' ,'يوم
'D'=>' ,'أيام
'w'=>' ,'أسبوع
'W'=>' ,'أسابيع
'm'=>' ,'شهر
'M'=>' ,'شهور
'y'=>' ,'سنة
'Y'=>' 'سنوات
);
$retArr = getElapsedTime(mkTime(0,0,0,'2','1','2013'));
echo $retArr[1].' '.$arr[$retArr[0]];
function getElapsedTime ($t)
{
$timeDiff = time()-$t;
if($timeDiff < 60)
{
if($timeDiff<1)
{
$arr[] = 's';
$arr[] = '0';
}

else if($timeDiff<3 or $timeDiff>10)
{
$arr[] = 's';
$arr[] = $timeDiff;
}
else
{
$arr[] = 'S';
$arr[] = $timeDiff;
}
}
else if(($temp=(int)($timeDiff/60)) < 60)
{
if($temp<3 or $temp>10)
{
$arr[] = 'i';
}
else
{
$arr[] = 'I';
}
$arr[] = $temp;
}
else if(($temp=(int)($timeDiff/(60*60))) < 24)
{
if($temp<3 or $temp>10)
{
$arr[] = 'h';
}
else
{
$arr[] = 'H';
}
$arr[] = $temp;
}
else if(($temp=(int)($timeDiff/(60*60*24))) < 7)
{
if($temp<3)
{
$arr[] = 'd';
}
else
{
$arr[] = 'D';
}
$arr[] = $temp;
}
else if(($temp=(int)($timeDiff/(60*60*24*7))) < 4)
{
if($temp<3)
{
$arr[] = 'w';
}
else
{
$arr[] = 'W';
}
$arr[] = $temp;

}
else if(($temp=(int)($timeDiff/(60*60*24*7*4))) < 12)
{
if($temp<3 or $temp>10)
{
$arr[] = 'm';
}
else
{
$arr[] = 'M';
}
$arr[] = $temp;
}
else
{
$temp = (int)($timeDiff/(60*60*24*30*12));
if($temp<3 or $temp>10)
{
$arr[] = 'y';
}
else
{
$arr[] = 'Y';
}
$arr[] = $temp;
}
return $arr;
}
?>
</body>
</html>

في المثال السابق استخدمت الحروف الصغيرة  والكبيرة  للتفرقة بين مدى الرقام فالحرف
الصغير يدل على أن العدد إما 1 أو 2 أو أكبر من 10 والحرف الكبير ما دون ذلك .
طبعاً بإضاافة بعض التغييرات البسيطة على الدالة لتمكننا من طباعة ما نشاء كالدقائق والثوان
معاً أو اليام والساعات أي شيئ كيفما تشاء .

ملحظة : من الصدار 5.1.0 فما فوق أصبح مدى ال timestamps من 13 ديسمبر 1901 الساعة 20:45:54 GMT إلى 19 يناير 2038 الساعة 03:14:07 GMT وهو أقصى مدى للمتغير من النوع الصحيح int من النوع signed في أنظمة 32bit .

وللحصول على تاريخ أقل من سنة 1970 سندخل قيمة سالبة للدالة date ولمعرفة الtimestamps لتاريخ قبل 1970 أيضاً سنستخدم  mktime وستعطينا قيمة ولكن بإشارة  سالبة إذا تم تمرير هذه القيمة للدالة date ستحصل على التاريخ .

فيصبح كود معرفة السن من خلل تاريخ الميلد كالتالي :

<?php
echo age(mktime(0,0,0,'12','5','1960'));
function age($in)
{
if($in<0)
{
$in = (-1*$in)+time();
}
else
{
$in = time()-$in;
}
return (int)($in/(365.25*24*60*60));
}
?> 


المصدر:
كتاب: تعلم البرمجة بلغة php - الطبعة الثانية - 2013 
للمؤلفان : عبد اللطيف ايمش و أحمد ابو السعود

يسمح لك بنسخ وتوزيع أو تعديل هذا المقال وفق شروط اتفاقية رخصة غنو للمستندات الحرة  الاصدار 1.2 GNU FDL
أو اي إصدار لاحق يتم نشره من قبل مؤسسة البرمجيات الحرة .


الخميس، 26 فبراير 2015

تعظيم الاستفادة من الهاتف المحمول

نظرة عامة 


بعدما وصل عدد اشتراكات الهاتف المحمول  بأنحاء العالم إلى نحو 6 مليارات، أصبح قرابة ثالثة أرباع سكان العالم يمتلكون اآلن هواتف محمولة. لقد صارت الهواتف المحمولة كما يقول البعض أكثر التقنيات الحديثة انتشاراً. وفي بعض البلدان النامية، يفوق عدد من يمتلكون هواتف محمولة من لديهم حسابات مصرفية، أو كهرباء، أو حتى مياه نظيفة.

 وتتيح خدمات االتصاالت باستخدام الهواتف المحمولة اآلن فرصاً كبيرة لدفع التنمية البشرية قدما —من حيث إتاحة سبل الحصول على المعلومات المتعلقة بالتعليم أو الرعاية الصحية إلى تقديم المدفوعات النقدية، وإلى تحفيز المواطنين على المشاركة في وتُعد خدمات الهاتف المحمول واحدة من أسرع التقنيات انتشاراً العمليات الديمقراطية. على مر العصور. ففي حين استغرق األمر 128 عاماً حتى وصلت خطوط الهواتف الثابتة إلى مليار مستخدم، حققت شبكات الهاتف المحمول هذا اإلنجاز في زمن ال يكاد يتجاوز العشرين عاماً )انظر الشكل 1(. والمذهل أكثر من ذلك أن شبكات الهاتف المحمول يتضاعف حجمها تقريباً كل سنتين منذ 2002. وفي أوائل عام 2012 تجاوز عدد اشتراكات الهواتف المحمول الستة مليارات.

بلدان العالم النامية بها من الهواتف المحمولة أكثر مما في العالم المتقدم. ففي العالم المتقدم، أضافت االتصاالت عبر الهاتف المحمول قيمة إلى أنظمة االتصاالت الموروثة وأسهمت بوصفها عنصراً مكمالً في التوسع في تدفق المعلومات القائم. غير أن بلدان العالم النامية تتبع مساراً إنمائياً مختلفاً تأتي فيه "الهواتف المحمولة أوالً". وغالباً ما يكون معدل امتالك الهواتف المحمولة بالبلدان النامية أعلى منه في البلدان المتقدمة، لتنقلب بذلك الفجوة الرقمية بينهما رأساً على عقب )انظر الشكل 2(. وينبع العديد من ابتكارات الهواتف المحمولة )بما فيها الهواتف ذات الشرائح المتعددة، وإعادة الشحن منخفضة التكلفة،

والمدفوعات عبر الهاتف( على نحو متزايد من البلدان الافقر ومنها تنتشر في أرجاء الدنيا. ومن شأن تطبيقات الهاتف المحمول المصممة محلياً والمنبثقة جذورها من أرض الواقع ببلدان العالم النامية أن تتالءم بدرجة أفضل كثيراً مع احتياجات معالجة َ تحديات التنمية أكثر مما تستطيع التطبيقات الوافدة من أماكن أخرى. وبمقدور التطبيقات التي تم تطويرها محليا، على وجه الخصوص، أن تعالج بواعث قلق البلدان النامية، مثل اإللمام بالتكنولوجيات الرقمية وانخفاض أسعارها.

لا تسهم تطبيقات المحمول في تمكين المستخدمين ً األفراد فحسب، لكنها تثري أيضا أنماط حياتهم وموارد رزقهم وتعزز االاقتصاد في مجمله.
 فتطبيقات الهاتف المحمول تجعل اآلن بالفعل من الهواتف قوة هائلة بوصفها بوابات على العالم اإللكتروني. وتأتي الموجة الجديدة من التطبيقات أو تطبيقات الهواتف الذكية وخدمات تقنية مزج البيانات التي تحركها الشبكات عالية السرعة، وشبكات التواصل االجتماعي، ونهج استلهام الحلول من الجمهور، واالبتكار، لتساعد الهواتف المحمولة في إحداث تحول في حياة الناس بالبلدان المتقدمة والنامية على حد سواء )انظر اإلطار 1 ُ (. ويخلص التقرير إلى أن تطبيقات الهاتف المحمول ال تسهم فحسب في تمكين األفراد، بل تترتب عليها كذلك تداعيات مهمة، إذ إنها تحفز النمو وتنظيم مشاريع العمل الحر والقدرة اإلنتاجية بمختلف أنحاء االقتصاد إجماالً. وتبشر االتصاالت عبر الهواتف المحمولة بما هو أكثر من مجرد إعطاء صوت للعالم النامي؛ فهي بإطالقها كل إمكانيات الهاتف الحبيسة تمكن الناس من تحديد خياراتهم وقراراتهم بأنفسهم
االنتشار الذي ال يكاد يخلو منه مكان يتيح فرصا جديدة.
يحلل هذا العدد الجديد من تقرير المعلومات واالتصاالت من أجل التنمية لعام 2012، الصادر عن البنك الدولي، نمو خدمات الهاتف المحمول وتطورها، وانتشار الخدمات المستندة إلى البيانات المتاحة عبر األجهزة المحمولة، بما في ذلك التطبيقات.

موقع يشرح وحدة قياس الحرارة بالتفصيل

نبذة سريعة عن لغة php | تعلم البرمجة بلغة php



نبذة سريعة عن لغة php 


هي لغة حرة  مفتوحة المصدر ومجانية الاستخدام و مخصصة لتطوير تطبيقات الويب وبيئة تطويرها هي Linux
إن كانت لك سابقة عهود مع أي لغة برمجة لن تجد الامر غريب لان المنطق البرمجي واحد وأوامرها تشبه إلى حد كبير أمها لغة C
ستجد مرونة كبيرة إن كنت من مستخدمي أحد اللغات التالية وهي:  C# أو C++ أو C أو java

توفرها هذه اللغة في التعامل بخلف ما إعتدت عليه .
أول ما سيصادفك من هذه المرونة أن هذه اللغة ل تحتاج لتعريف متغيرات فقط إسناد القيمة
للمتغير وسيقوم مترجم اللغة بالتعرف على القيمة التي يحويها المتغير تلقائياً .

ملاحظة : أوامر لغة PHP  غير حساسة لحالة الحرف بمعنى يمكنك الكتابة بالاحرف الكبيرة  أو الصغيرة  على حد سواء في أوامر اللغة .

 وبما أن صفحة الويب يمكن أن تتضمن أكواد غير أكواد لغة PHP إذاً يجب تنبية المترجم أين أكواد PHP
 ليتم التعرف عليها ولهذا عند كتابة أكواد PHP داخل الصفحة يجب تضمينها ضمن وسم الفتح<?php ووسم الغلق ?>
هناك أيضاً الشكل المختصر ولكن تم إيقاف إستخدامه لتشغيله يجب عليك التعديل على ملف php.ini
وكما جرى العرف والعادة  طباعة جملة إفتتاحية وغالباً تكون hello world !

 للطباعة على المتصفح نستخدم echo بأقواس أو بدون أقواس كالتالي :
<?php
echo ("hello ");
echo "world !!";
?>

ضاع هذا الكود في ملف وليكن باسم test.php ونفذ الكود عن طريق كتابة رابط الصفحة في نافذة  المُتصفح .

ملاحظة : يُسمح لك باستخدام المسافات الفارغة و السطر كيفما تشاء ولكن يجب أن يتم الفصل بين الوامر البرمجية بالفاصلة المنقوطة ";”

وطباعتها كالتالي : HTML يمكننا تطبيق وسوم ال
<?php
echo "<div style='color:#F00;'>hello world !!</div>";
?>

وقد قمت بإستبدال علمة القتباس المزدوجة إلى مفردة  حتى ل يحدث تضارب بين العلمتين
ويمكن أن يكون الكود أيضاً بهذا الشكل :

<?php
echo '<div style="color:#F00;">hello world !!</div>';
?>

وسيأتي الحديث عن الفرق بين الطريقتين لحقاً .
ويمكن أيضاً إستخدام العلمة \ قبل العلمة التي ل تريد أن يحدث لها تضارب مع علمة أخرى بهذا الشكل :

<?php
echo "<div style=\"color:#F00;\">hello world !!</div>";
?>


للدمج نستخدم علمة النقطة . كالتالي :

<?php
echo "hello"." world !!";
?>


المصدر:

كتاب: تعلم البرمجة بلغة php - الطبعة الثانية - 2013
للمؤلفان : عبد اللطيف ايمش و أحمد ابو السعود

يسمح لك بنسخ وتوزيع أو تعديل هذا المقال وفق شروط اتفاقية رخصة غنو للمستندات الحرة  الاصدار 1.2 GNU FDL
أو اي إصدار لاحق يتم نشره من قبل مؤسسة البرمجيات الحرة .

البدء بمشاريع مفتوحة المصدر

البدء بمشاريع مفتوحة المصدر

مقدمة


منذ نشأة فلسفة البرمجيات المفتوحة في ثمانيات القرن الماضي وإلى يومنا هذا تغير مفهوم صناعة البرمجيات إلى حد كبير. حيث ساهمت الفلسفة المفتوحة بإتاحة كم هائل من البرامج المفتوحة المصدر والتي تُمكن الباحث من مطالعة شفرتها البرمجية ودراستها وفهم آلية عملها واضافة تحسينات عليها،

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

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



المصدر/

كتاب : صناعة التكنولوجيا | كيفية البدء بمشاريع مفتوحة المصدر
للمؤلف: محمد إسحاق عبدالحميد
muhamedishaq.me : المدونة


يمكنكم مراسلتي لاي تعليقات أو اضافات عبر مدونتي أو صفحتي بتويتر أو عبر الكتابة إلي مباشرة على
mohamedgt40@gmail.com بريد

نظام إدارة وتنظيم عمل البرمجة والتطوير لنشباد



نظام إدارة وتنظيم عمل البرمجة والتطوير لنشباد


لنشباد هو نظام إلكتروني يمكن صاحبه من بدء مشروع  الكتروني يمكن أن يشمل نظام تشغيل بالكامل
كنظام أوبنتو  Ubuntu Wordpress)
  تطويرها من خلل لنشباد، والتسجيل في لنشباد مجاني لمطوري البرمجيات المفتوحة وعليه رسوم
في حال لو كان البرنامج معمول لغرض تجاري.

يحتوي لنشباد على عدة مزايا تجعله في مصاف النظم الالكترونية لبدء وإدارة المشاريع منها:-

• تحديد الغرض من البرنامج.

• بناء البرنامج بواسطة نظام بازار البرمجي لترتيب الكود والمقاطع البرمجية.

• بناء فريق عمل متكامل بالتعاون مع الافراد الموجودين ضمن مستخدمي ومطوري لنشباد من
مختلف الدول والتخصصات وتوزيع المهام فيما بينهم.

• كتابة الكود ومراجعته ضمن حزم غيرة تساهم في تسريع اصلاح العيوب البرمجية وسد
الثغرات.

• نظام مراجعة وتسليم المقاطع البرمجية مفتوح للجميع للمساهمة فيه وارسال مقترحاتهم حول
ذلك.

• دعم البرنامج بأكثر من لغة بالاستعانة بالمترجمين في بيئة لنشباد.

• عمل قوائم بريدية لمتابعة التحديثات والتعديلت التي تتم على البرنامج.

• عمل دليل استخدام للبرنامج في الموقع وقسم الاسئلة الشائعة.

• اتاحة المجال لتنزيل البرنامج ضمن اصدارات ومتابعة الاصدارات والتحديثات.


فإن كنت من المهتمين في عمل البرامج المفتوحة المصدر، أو البرامج التجارية فبادر بالتسجيل في
 لنشباد وتجربة العمل فيه عبر الرابط http//launchpad.net

المصدر/

كتاب : صناعة التكنولوجيا | كيفية البدء بمشاريع مفتوحة المصدر
للمؤلف: محمد إسحاق عبدالحميد
muhamedishaq.me : المدونة


موقع شرح وحدة قياس الحرارة بشكل كامل 

مشروع لينوكس من نقطة الصفر


مشروع لينوكس من نقطة الصفر


مشروع  لينوكس من نقطة الصفر Linux From Scratch أو ما يعرف اصطلاحا  ب(LFS)  هو مشروع  يعطي الفرصة للمهتمين بعمل نظم التشغيل ببناء نظام تشغيل خطوة بخطوة بشكل خاص حسب الطلب، ويكون العمل بواسطة شيفرة المصدر .(Source Code) 

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

• بناء تظام تشغيل من الصفر يعين على فهم آلية عمل نظام التشغيل من الداخل، وكيف تعملأجزاء نظام التشغيل سوياً وكيف يعتمد كل جزء على الاخر في العمل، كما يمكن إضافة لمساتكثيرة على النظام لجعله نظام مختلف عن بقية الاصدارات والتوزيعات.

• بناء نظام تشغيل من الصفر يتيح إضافة البرامج والتطبيقات اللازمة فقط، فالتوزيعات الموجودة تأتي مع كم كبير من البرامج والتي قد لا يحتاج إليها.
 إن عمل نظام تشغيل لينوكس من نقطة الصفر يتيح عمل أنظمة خفيفة وتستهلك القليل من مساحة الذاكرة، فبالمقارنة بنظام لينوكسأوبنتو نجد أن هذه التوزيعة تستهلك 2.3 جيجا من الذاكرة لتثبيت النظام مع البرامج الاساسية،بينما يمكن عمل نظام تشغيل ليستهلك أكثر من 100 ميجابايت، ومن التجارب التي تستحق الذكر عمل نظام تشغيل يشغل أباتشي سيرفر(Apatche Server)  فقط وحجمه 8 ميجابايت. 

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


للمزيد من المعلومات ولتنزيل ملفات النظام والكتب التعليمية المتعلقة بالعمل للمشروع
/http://wiki.linuxfromscratch.org/lfs الرجاء زيارة موقع المشروع

اصنع توزيعة لينوكس الخاصة بك بخطوات سهلة


اصنع توزيعة لينوكس الخاصة بك بخطوات سهلة


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

 كما يمكن اضافته لبعض السيرفرات ليعمل عليها أو تنزيله على أقراص مرنة ليكون متاحاً للجميع.، ومن المميزات النادرة والفريدة من نوعها أن يتم تجربة نظام التشغيل دون  الحاجة لتنزيله فقط من خلال المتصفح، فيقوم المتصفح حينها بالعمل كالجهاز الافتراضي Virtual Machine
لتجربة النظام يمكنكم زيارة موقع أستوديو سوزي على الرابط /http://susestudio.com

يمكن عمل نظام تشغيل متكامل وعرضه للبيع بإسم شركة أخرى وإزالة شعار سوزي لينوكس من التوزيعة
والحصول على حقوق البيع والدعم الفني مباشرة من الشركة عبر التواصل المباشر مع الشركة عبر الرابط التالي https://www.suse.com/partners/integrated-systems



المصدر/

كتاب : صناعة التكنولوجيا | كيفية البدء بمشاريع مفتوحة المصدر
للمؤلف: محمد إسحاق عبدالحميد
muhamedishaq.me : المدونة

افلام اون لاين