Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/alrashdi/public_html/blog/wp-content/themes/suffusion/functions/media.php on line 666

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/alrashdi/public_html/blog/wp-content/themes/suffusion/functions/media.php on line 671

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/alrashdi/public_html/blog/wp-content/themes/suffusion/functions/media.php on line 684

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/alrashdi/public_html/blog/wp-content/themes/suffusion/functions/media.php on line 689

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/alrashdi/public_html/blog/wp-content/themes/suffusion/functions/media.php on line 694
دروس ويب – الصفحة 3 – Abdulaziz Al Rashdi
نوفمبر 242010
 

الشكل المعتاد للمتغيرات:

<?PHP
 
$var1 = 'Hello,';
$var2 = '<br /?>';
echo $var1.$var2;
/*
سيعرض المتغير الأول والمتغير الثاني معًا، لاحظ أني قمت بتخزين وسم إنزال سطر جديد في المتغير الثاني 
بالتالي المتغير الأول سيقوم بعرض الكلمة المخزنه به، والمتغير الثالي سيقوم مباشرة بالنزول لسطر جديد
*/
 
$n1 = 5;
$n2 = 3;
 
echo $n1+n2; ## ناتج جمع المتغير الأول مع المتغير الثاني
echo "<br />"; سطر جديد
echo $n1*n2; ## ناتج ضرب المتغير الأول في المتغير الثاني
echo "<br />"; سطر جديد
 
?>

لننتقل الآن لطريقة كتابة المصفوفات في PHP وطريقة إستدعاءها.

مثال (1):

$email = array('test1@hct.me',
               'test2@hct.me',
               'test3@hct.me',
               'test4@hct.me');

مثال (2):

$email = array();
$email[] = 'test1@hct.me';
$email[] = 'test2@hct.me';
$email[] = 'test3@hct.me';
$email[] = 'test4@hct.me';

المثال (1) = المثال (2)
في المثالين أعلاه، لجلب متغير معين سنضطر لاستخدام فهرس (index)، الفهرس عبارة عن رقم يبدأ من الصفر وينهي بعدد الصفوف في المصفوفة – 1
على سبيل المثال، نريد عرض البريد الالكتروني “test3@hct.me” من أحد المصفوفات السابقات، طريقة العرض الصحيحة حسب الفهرسة أعلاه:

echo $email[2];

لعرض كافة المدخلات في أيًا من المصفوفات أعلاه:

<?php
foreach($email as $e)
{
 echo $e."<br />\n";
}
?>

لنتعمق أكثر في المصفوفات، مثال (3):

$email = array('Abdulaziz' => 'sp@hct.me',
               'Test2' => 'test2@hct.me',
               'Test3' => 'test3@hct.me',
               'Test4' => 'test4@hct.me');

مثال (4):

$email = array();
$email['Abdulaziz'] = 'sp@hct.me';
$email['Test2'] = 'test2@hct.me';
$email['Test3'] = 'test3@hct.me';
$email['Test4'] = 'test4@hct.me';

أيضًا المثال (3) = المثال (4)
ربما تعدد طرق الكتابة سيكون مفيدًا لك كمبرمج اكثر 🙂

لعرض محتوى مدخل وحيد من أي مصفوفة من المثال (3) أو المثال (4) يمكنك استخدام الطريقة الآتية لعرض “sp@hct.me” على سبيل المثال:

echo $email['Abdulaziz'];

لعرض كافة المدخلات من المصفوفة في المثال (3) أو المصفوفة في المثال (4):

<?php
foreach($email as $name => $e)
{
 echo $name.'<b>=></b>'.$e."<br />\n";
}
?>

مرة أخرى لنتعمق اكثر، مثال (5):

$setting = array(
                 'database' => array('host'   => 'localhost',
                                     'user'   => 'root',
                                     'pass'   => '',
                                     'dbnm'   => 'testdb',
                                     'prefix' => 'hct_'),
                 'site'     => array ('url'   => 'http://www.hct.me',
                                      'title' => 'HCT Community Forum'),
                 'upload'   => array ('types' => array('.jpg','.gif'),
                                      'msize' => '2048')
                 );

نلاحظ أنه تم إدخال مصفوفة فرعية ثم في المصفوفة الرئيسية

مثال (6):

$setting = array();
$setting['database'] = array();
$setting['database']['host'] = 'loacalhost'; 
$setting['database']['user'] = 'root';
$setting['database']['pass'] = '';
$setting['database']['dbnm'] = 'testdb';  
$setting['database']['prefix'] = 'hct_';     
$setting['site'] = array();     
$setting['site']['url'] = 'http://www.hct.me';    
$setting['site']['title'] = 'HCT Community Forum';  
$setting['upload'] = array();
$setting['upload']['types'] = array('.jpg','.gif'); 
$setting['upload']['msize'] = '2048';

في المثالين 5 و 6 لعرض اسم قاعدة البيانات نكتب الآتي:

echo $setting['database']['dbnm'];

لعرض كافة المدخلات في المثال (5) أو المثال (6):

<?php
foreach($setting as $type => $value)
{
 echo "<b>".$type.":</b><br />\n";
 foreach($value as $type2 => $value2)
  echo "\t".$type2.'<b>=></b>'.$value2."<br />\n";
}
?>
<?php
foreach($setting as $type => $value)
{
 echo "<b>".$type.":</b>
\n"; foreach($value as $type2 => $value2) echo "\t".$type2.'<b>=></b>'.$value2."<br />\n"; } ?>

الآن سأقوم بشرح المغزى من الدرس أعلاه :)، كمثال عند استخدامك لدالة معينة من صنعك، عليك بتعريف المتغيرات أما في الدالة نفسها بوضعها كمتغيرات تكتب عند استخدام الدالة كل مرة، مثال:

db_connect($host,$user,$pass,$db);

أو يمكنك تخزينها داخل الدالة على أن يتم جلبها من متغيرات خارجية، لكن لجلب متغير خارج الدالة واستخدامه داخل الدالة يجب استخدام global، مثال لدالة بسيطة (دالة بلا مغزى :D) :

$var1 = 'test'
 
function test_function()
{
 global $var1;
 return $var1;
}
 
echo test_function();

لنتفرض انك لا تود تكرار بيانات أو كتابة شفرة كبيرة للإتصال بقواعد البيانات، في ملف الإعدادات لديك الشفرة الآتية:

$database_host = 'localhost';
$database_user = 'root';
$database_pass = '';
$database_dbnm = 'testdb';
$database_prefix = 'hct_';

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

function db_connect()
{
 global $database_host, $database_user, $database_pass, $database_dbnm;
 @mysql_pconnect($database_host,$database_user,$database_pass);
 @mysql_select_db($database_dbnm);
}

هل لاحظت اننا اضطررنا لوضع كافة المتغيرات من ملف الإعدادات مع global ؟
على افتراض أنه لديك اعددات أكثر ودالة أخرى، هل أنت مستعد لكتابة كافة المتغيرات في الدوال؟

على غرار المثال السابق، سنستبدل ملف الإعدادات للمحتوى التالي (نفس المحتوى في المثال 6):

$setting = array();
$setting['database'] = array();
$setting['database']['host'] = 'loacalhost'; 
$setting['database']['user'] = 'root';
$setting['database']['pass'] = '';
$setting['database']['dbnm'] = 'testdb';  
$setting['database']['prefix'] = 'hct_';     
$setting['site'] = array();     
$setting['site']['url'] = 'http://www.hct.me';    
$setting['site']['title'] = 'HCT Community Forum';  
$setting['upload'] = array();
$setting['upload']['types'] = array('.jpg','.gif'); 
$setting['upload']['msize'] = '2048';

الدالة ببساطة ستكون كالتالي:

function db_connect()
{
 global $setting;
 @mysql_pconnect($setting['database']['host'],$setting['database']['user'],$setting['database']['pass']);
 @mysql_select_db($setting['database']['dbnm']);
}

باختصار لم نضطر لكتابة كافة المتغيرات، اختصرنا الطريق بكتابة اسم المصفوفة الرئيسية..

سبتمبر 032009
 

ملاحظة: هذا الدرس من أرشيف “عالم البي أتش بي العربي”

 

في درسنا هذا سأقوم بتوضيح طريقة عرض إعلانات في موقعك بدون إستخدام قواعد البيانات

المستوى : مبتدأ أو متوسط
سنستخدم الآتي:
array
count : تستخدم لحساب التكرارات في المصفوفة array
rand : تستخدم لكتابة أعداد بشكل عشوائي وتحدد الأعداد بنفسك، مثلًا: من 0 وإلى 9

الشفرة كاملة للدرس مع الشرح:

<?PHP
define('TITLE', 'Phpaw.com Rand Image'); ##ليس مهم، اسم الصفحة

/*في الأسفل، المصفوفات في المتغير
ads
*/
$ads=array('<a href="http://www.phpaw.com"><img border="0" src="http://www.phpaw.com/images/ad.gif"></a>',
'<a href="http://www.phpaw.com"><img border="0" src="http://www.phpaw.com/home/phpaw-v2.2/favicon.ico"></a>',
'<a href="http://www.phpaw.org"><img border="0" src="http://www.phpaw.org/tools/Phpaw-v2.2/favicon.ico"></a>',
'<a href="http://www.oman-e.net"><img border="0" src="http://www.oman-e.net/PhpEstates/styles/images/oman-e_05.gif"></a>');

/*
في الأسفل، في المتغير
getarray
قمت بتحديد الأرقام العشوائية بين الرقم صفر وعدد المصفوفات وطرحت العدد واحد
لأن المصفوفات لا تبدأ من الرقم واحد وإنما تبدأ من الصفر
*/
$getarray=rand(0,(count($ads)-1)); ##لاحظ أنني قمت بدمج متغيرين وطرح عدد أيضًا

$html .="<title>".TITLE."</title>\n"; ## ليس مهم، كتابة اسم الصفحة
$html .='<div align="center">'."\n"; ##توسيط الإعلانات
$html .= $ads[$getarray]."\n"; ## عرض الإعلانات
$html .='</div>'."\n"; ## توسيط الإعلانات

print $html; ## كتابة المتغير هتمل في الصفحة

?>
أغسطس 142009
 

هل سمعت عن PHP ؟

يمكنك القراءة عنها في الموقع الرسمي

هي باختصار لغة برمجية تستخدم في مواقع الويب، ليس بالصعبة وسهلة التعلم، المقال الآتي سيكون كمدخل فقط وسأوضح به كيفية تركيب خادم داعم للـPHP في حاسوبك المنزلي (ويندوز).

توجد العديد من الخوادم المجانية لكني أفضل الخادم Appserv، أستخدمه منذ عدة سنوات وأحدث الإصدارات دومًا..

ولتنزيل الخادم Appserv هنا الرابط

لا أظن انه توجد صعوبة في تنصيب الخادم على الجهاز، لكن باختصار، عندما تصل لخطوة كتابة الموقع اكتب الآتي:

http://localhost

بعد تنصيب الخادم المحلي ربما سيتطلب منك إعادة التشغيل، لذلك إن طُلب ذلك قم بإعادة تشغيل جهازك قبل المباشرة في تجربة الخادم المحلي

المسار الافتراضي للخادم في جهازك كالتالي:

C:/Appserv

او ربما يختلف حسبما قمت به أثناء التنصيب

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

http://localhost

وإن عمل فذلك يعني أن الخادم يعمل في جهازك 🙂

وفي تدوينة أخرى إن شاء الله سأقوم بوضع بعض الدروس في استخدام php مبدئيًا

مارس 202007
 

ملاحظة: هذا الدرس من أرشيف “عالم البي أتش بي العربي”

كنت في الفترة السابقة أقرأ بعض الكتب في لغة الـjavascript وقد عملت المحرر التالي كتطبيق لما تعلمته في الفترة الفائتة

المحرر كاملا:

<html dir="rtl">

<head>
<meta http-equiv="Content-Language" content="ar-om">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>المحرر</title>
</head>

<body>

<script type="text/javascript" language="javascript">
//Powered by phpaw.com
    function promptW(c1,info,c2,msg){
var rinfo=window.prompt(msg,info);
if (!rinfo){
 document.Editor.S1.value=document.Editor.S1.value;
          }else{
 document.Editor.S1.value=document.Editor.S1.value+c1+rinfo+c2;
          }
     }

    function url(msg1,msg2,info,info2){
var rinfo2=window.prompt(msg1,info);
var rinfo=window.prompt(msg2,info2);
if (rinfo && rinfo2){
  document.Editor.S1.value=document.Editor.S1.value+'<a style="text-decoration: none" href="'+rinfo+'">'+rinfo2+'</a>';
          }
     }
    function viewF(){
 document.getElementById('test').innerHTML=document.Editor.S1.value;
    }

</script>

<form method="POST" action="http://www.phpaw.com/?javetest" name="Editor">
    <p>&nbsp;</p>
    <p align="center"><input type="button" value="رابط" name="B3" onclick="url('أدخل اسم الرابط','أدخل عنوان الرابط','عالم البي أتش بي العربي','http://www.phpaw.com');">
    <input type="button" value="صورة" name="B4" onclick="promptW('<img border=0 src=','','>','رابط الصورة');">
    <input type="button" value="B" name="B5" style="font-weight: bold" onclick="promptW('<B>','','</B>','أدخل النص المراد إظهاره بشكل غامق');">
    <input type="button" value="I" name="B6" style="font-style: italic" onclick="promptW('<I>','','</I>','أدخل النص المراد إظهاره بشكل مائل');">
    <input type="button" value="U" name="B7" style="text-decoration: underline"  onclick="promptW('<U>','','</U>','أدخل النص المراد إظهار خط بأسفله');"><span lang="en-us">
    </span>
    <input type="button" value="مشاهدة الموضوع" name="B8" onclick="viewF();"></p>
    <p align="center"><textarea rows="7" name="S1" cols="95"></textarea></p>
    <p align="center"><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>

<div id="test"></div>
</body>

</html>

تفصيل الشفرة:

<script type="text/javascript" language="javascript">
//دالة إظهار نافذة الإضافة
    function promptW(c1,info,c2,msg){
//إظهار حقل الإدخال
var rinfo=window.prompt(msg,info);
//التأكد من حالة الحقل
if (!rinfo){
 document.Editor.S1.value=document.Editor.S1.value;
          }else{
 document.Editor.S1.value=document.Editor.S1.value+c1+rinfo+c2;
          }
     }
//دالة إضافة وصلة
    function url(msg1,msg2,info,info2){
//إظهار حقل كتابة اسم الوصلة
var rinfo2=window.prompt(msg1,info);
//إضهار حقل كتابة رابط الوصلة
var rinfo=window.prompt(msg2,info2);
// التأكد من أن الحقلين غير فارغين
if (rinfo && rinfo2){
  document.Editor.S1.value=document.Editor.S1.value+'<a style="text-decoration: none" href="'+rinfo+'">'+rinfo2+'</a>';
          }
     }
//دالة عرض الموضوع
    function viewF(){
 document.getElementById('test').innerHTML=document.Editor.S1.value;
    }

</script>

إستخدام دالة نافذة الإضافة:
فقط عليك بإضافة الكود الآتي إلى الزر:

 onclick="promptW('<tag>','القيمة الإفتراضية','</tag>','msg');"

ويجب ملاحظة أن إسم الحقل هو S1
ويمكنك تغييره لكن تأكد من تحريره في الكود كاملا