|
بسم الله.
:: يادگيري PHP در سوت! :. نگارش اول و نيم
سوت دوم
:
:: آرايه ها:
آرايه ها موجودات دوست داشتني هر زبان هستند. قبلا فقط مي شد تنها عناصر
همنوع را در يك آرايه قرار داد، اما در php مي توان هر نوع داده اي ( از 8 نوع) را با هر نوع انديسي (integer و
string ) در يك آرايه جمع كرد.
به چند روش ميشه، يه آرايه رو تعريف كرد.
1.
$a= array( key => value, …. );
2.
$a[key]= value;
3.
$a[]= value;
چند تا مثال:
ساختن يك آرايه خالي
!
$a= array
();
آرايه مشخصات يك نفر
$a= array('name'=>'netvand', 'family'=>''netkadeh", 'age'=>22);
همان آرايه بالايه كه با 3 تا دستور ساخته شده
$a['name']= 'netvand';
$a['family']='netkadeh';
$a['age']= 22;
اگر انديسي براي آرايه مشخص نكنيد، يعني خونه صفرم [0].
$a[]=1;
اما مقادير بعدي بعد از اون به ترتيب قرار مي گيرند. يعني [1] و [2] و…
$a[]=2;
$a[]= 3;
به همين راحتي! جلوتر كه رفتيد، مي تونيد آرايه هاي چندبعدي هم تعريف
كنيد. (آرايه اي از آرايه )
براي اينكه ببينيد آرايه كه ساخته ايد، چي از آب دراومده از اين
دستور كمك بگيريد:
<? print_r($a); ?>
متدوالترين دستوري كه براي كار با آرايه ها به كار ميره، دستور foreach است.
foreach ( $arrayname as $key =>$value )
echo $value,"<br>";
foreacho ( $arrayname as $key )
echo $arrayname[$key], "<br>";
دستورات بالا، مقدار عناصر آرايه رو توي سطرهاي متوالي چاپ ( بخاطر <br> )
مي كنن.
توجه: توي PHP يه عالمه تابع آماده براي كار روي آرايه نوشته شده كه كافيه
شما فقط طرز استفادشون رو ياد بگيرين. همين.
:: چند نكته در مورد فرم ها:
همانطور كه مي دونيد، انتقال اطلاعات بين صفحات از طريق دو متد POST (براي
فرمها) و GET (از طريق خط آدرس url) ها صورت مي گيره.
شما هر عنصري كه در فرم استفاده كنيد، انديسي همنام با آن در
$_POST
(كه يك آرايه است) ساخته مي شود كه شما بايد درون برنامه تان از اون
استفاده كنين.
.: يك مثال پيچيده تر:
<?
// form2.php
$do= $_GET['do'];
if ($do == 'send') {
$name= $_POST['name'];
$comments= $_POST['comments'];
$check= $_POST['check'];
$which= $_POST['which'];
$what= $_POST['what'];
//do something you want with those.
} else { ?>
<form method="POST"
action="<?=$_SERVER['PHP_SELF']?do=send?>">
<p>Name:<input type="text"
name="name" size="20">
<p>Comments:
<p><textarea rows="2"
name="comments" cols="20"></textarea>
<p><input type="checkbox"
name="check" value="ON"> check this
<p><input type="radio"
value="1" checked name="which"> 1
<input type="radio" name="which"
value="2"> 2
<p><select size="1"
name="what">
<option>I want this</option>
<option>no, this is better</option>
<option>both of them</option>
</select>
<p><input type="submit"
value="Submit" name="submit">
<input type="hidden" name="ding"
value="ok">
</form>
<? }
?>
اول: بجاي ساختن دوتا فايل، هر دو تا را توي يه برنامه كه اسمشو گذاشتم
form2.php نوشتم.
براي همين لازم شد تا از ساختار كنترلي
if () { … } else { … }
استفاده كنم. نترسيد! خيلي آسونه.
دوم: توي اين فرمي كه تعريف كردم، از همه عناصر يك فرم استفاده كردم. به
اسمها دقت كنيد: name و comments و check و which و what و ding كه يك فيلد مخفيه!.
سوم:
$do= $_GET['do']
پارامتريه كه قراره از طريق خط آدرس به برنامه داده بشه. do به برنامه
ميگه چه تصميمي بگيره و چه كار بكنه.
سوم: به مقدار action در تعريف فرم دقت كنين.
action="<?=$SERVER['PHP_SELF']?do=send ?>"
.. علامت مساوي كار دستور
echo رو انجام ميده. يعني مقدار متغير رو حساب مي كنه.
.. متغير
$_SERVER['PHP_SELF']
نام برنامه را برمي گردونه. اين كار رو براي مستقل كردن برنامه از
اسم فايلش انجام دادم. (شما هم هميشه اين كار رو انجام بدين.)
.. مقدار
action بعد از اجراي برنامه مي شود: form2.php?do=send
چهارم: ؟
پارامترهاي خط آدرس:
حتما با نمونه هايي از اين قبيل را ديده ايد:
http://netkadeh.persianblog.net/?date=13811019#206012
مثلا آدرس بالا، مقدار تاريخ را از طريق متغير date به برنامه ارسال مي كنه.
اشتباه نكنيد!. در اين مورد آقاي برنامه نويس، براي كوتاه كردن آدرس (و
احتمالا بالابردن امنيت!) نام برنامه را حذف كرده. شما مي توانيد فرض
كنيد default.asp يا بوده.
به هر حال براي بدست آوردن مقدار مقدار date در برنامه بايد از اين دستور
استفاده كنين:
$date= $HTTP_GET_VARS['date']; // since php 3.0
$date= $_GET['date']; // since
php 4.1.0
netvand
at netkadeh.net |