آموزش پی اچ پی

carp3

Member
آموزش پي اچ پي - مقدماتي - قسمت اول - ( اگه غلط املائي داشتم ببخشيد
44.gif
)


پي اچ پي چيست ؟
پي اچ پي ( گرفته شده از : Hypertext Preprocessor ) يک زبان تحت سرور است
-
پي اچ پ چي کار ميتونه انجام بده ؟
هرچي !
نقطه تمرکز پي اچ پي تحت سرور بودن اون هست شما با پي اچ پي ميتوانيد CGI نويسي کنيد يعني کوکي بفرستيد دريافت کنيد صفحات دايناميکي ( پويا ) بسازيد و ...
البته پي اچ پي کار هاي بيشتري نيز انجام ميدهد !

اصلي ترين جاهايي که از پي اچ پي استفاده ميشه :

برنامه نويسي تحت سرور - يعني برنامه نوسي براي يک سايت ! :d
اين بهترين و به عبارتي اصلي ترين کاري که ميتونه پي اچ پيانجام بده هست

برنامه نويسي خط فرماني
مثل برنامه هاي تحت داس ! شما ميتونيد پي اچ پي را بدون وب سرور و مرور گر اجرا کنيد

نوشتن برنامه هاي رو ميزي
مثل برنامه هاي ويندوز ! النبته اين پي اچ پي براي اينکار خوب نيست به خصوص برنامه هاي گرافيکي ولي اگر پي اچ پي رو خوب بلد باشيد ميتوانيد اين کار را انجام بديد
و برنامه هاي تحت ويندوز يا لينوکس درست کنيد

پي اچ پي در بيشتر سيستم عامل ها کار ميکنه مثل : Linux, خيلي Unix گوناگون (در بر گينده HP-UX, Solaris و OpenBSD), Microsoft Windows, Mac OS X, RISC OS,

و پي اچ پي از بيشتر وب سرور ها پشتيباني ميکنه مثل :
Apache, Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd,
و خيلي هاي ديگه !

خوب پس با پي اچ پي آزادي داريد که کدام وب سرور و کدام سيستم عامل را انتخاب کنيد !

با پي اچ پي ميتونيد خيلي راحت خروجي متن - swf - عکس و ... داشته باشيد ! :D

همچنين پي اچ پي از خيلي از بانک هاي اطلاعاتي پشتيباني ميکنه مثل :
Adabas D
InterBase
PostgreSQL
dBase
FrontBase
SQLite
Empress
mSQL
Solid
FilePro (فقط خواندني)
Direct
MS-SQL
Sybase
Hyperwave
MySQL
Velocis
IBM DB2
ODBC
Unix dbm
Informix
Oracle (OCI7 و OCI8)
Ingres
Ovrimos

همچنين پي تچ پي ميتواند با سيستم هاي ديگر هم ارتباط بر قرار کند با استفاده از پروتکل هاي : LDAP, IMAP, SNMP, NNTP, POP3, HTTP, (برو روي ويندوز)COM و تعداد بيشمار ديگر

حالا چه جوری پی اچ پی رو رو کامپیوتر خودمون اجرا کنیم ؟
بهترین کار اینه که برنامه زامپ که کامل ترینشون رو دانلود کنید البته راه های خیلی دیگه ای وجود داره ولی زامپ راهترین و کامل ترینشونشون !
http://www.apachefriends.org/en/xampp.html

-------------------/////////////////--------------------////////////////////--------------



به وسيه اين سيستم شما ميتوانيد برنامه هاي نوشته شده به زبان پي اچ پي نوشته شده اند را اجرا کنيد
برنامه هاي پي اچ پي سورس باز هستند ( Open Source )
خروجه اين سيستم ( پي اچ پي ) معمولا HTML است ( در بخش هاي بعدي خروجي هاي ديگر آموزش داده خواهد شد )
خوب اين يعني چي
42.gif

به اين مثال توجه کنيد :
PHP:
<html>
   <head>
       <title>Example</title>
   </head>
   <body>

       <?php 
       echo "Hi, I'm a PHP script!"; 
       ?>

   </body>
</html>
توجه داشته باشيد که پي اچ پي مانند زبان هاي قديمي ( C و پرل ) لازم نيست که براي داشتن خروجي HTML ثابت ( مثل : <head> ) کد نويسي انجام شود
پي اچ پي ميتواند در بين کد HTML قرار گيرد چون پي اچ پي تگ شروع و پايان دارد
50.gif


پي اچ پي يه جورايي شبيه به جاوا اسکريپته ولي با اين تفاوت که جاوا اسکريپت بر روي کامپوتز کاربر اجرا ميشه ولي پي اچ پي بر روي سرور براي همين پي اچ پي گشتردگي بيشتري داره و امن تره
همين تور اگه رايانه کاربر ساده و يا قديمي باشه باز هم کار ميکنه به عبارتي پي اچ پي ربط زيادي با مرور گر کاربر ندارد

کار با پي اچ پي ساده و راحته !
اما ميتونه حرفه اي ترين برنامه ها هم باهاش نوشته بشه
شايد اولين بار که يک کد رو ديديد بگين واي ! اين ديگه چيه ؟
مثلا مثال بالا را ککامل باز ميکنيم :
خط اول :
فهموندن به مرور گر که اين يک فايل HTML هست
خط دوم :
شروع شدن تگ هد
خط سوم :
مشخص کردن تيتر صفحه
خط پنچم :
بستن تگ هد
خط ششم :
شروع کردن کد بادي ( در بين اين تگ تمام خروجي هاي شما قرار ميگيرد)
خط هفتم :
فاصله !
57.gif

خط هشتم :
فهموندن به برنامه پي اچ پي که از اين به بعد ديگه کد پي اچ پي هست پس آنها اجرا کن : در بعضي موارد اين کد ؟> هم هست
خط نهم :
در اين خط ما با استفاده از دستور اکو ( ECHO ) يک خروجي ايجاد کرديم
يک فرمان اکو ميتواند به روش هاي زيادي نوشته بشه
دستور اکو تنها کاري که ميتونه انجام بده اينه که يک خروجي به سمت مرور گر ارسال کنه. همين ! البته دستور هاي ديگه اي مانند PRINT اين کار را انجام ميدن
در زير تمام مديل هايي که اکو بکار رفته رو ميبينيد :
PHP:
<?php
echo "SALAM ! ";

echo "In yek mat 
chand khati 
hast ";

echo "in ham \n ham yek matn chand khati hast didid PHP \n rahate ! .";

echo " karekter haye geyr mojaz ham gabol mishe !  \"mesle in   ! \".";

// شما متيتونيد از متغير هم استفاده کنيد ! 
$foo = "salam";


echo "heloo yani  $foo"; // hello yani salam


?>
البته مدل هاي ديگر هم ميشود اکو کرد ولي اين ها ساده ترين و پر کاربردي ترين نوعشون هستند
( توجه :
اکو يک ميانبر هم هست يعني شما ميتونيد از آن سريع استفاده کنيد :
PHP:
<?=echo "salam" ?>
)

حالا ادامه بديم :
خط دهم :
در اينجا به برنامه پي اچ پي ميفهمونيم که کد پي اچ پي در اين جا به پايان رسيد و بعد از اين ديگه پي اچ پي نستند البته شما هر جا که دوباره لازم شد ميتونيد باز از پي اچ پي استفاده کنيد به شرطي که قبلش به برنامه بفمونيد که از اين به بعد کد پي اچ پي هست و بعدش هم کد را ببنديد

خط يازدهم :
فاصله
57.gif


خط دوازدهم :
بستن تگ بادي
خط دوازدهم بستن تگ بادي
----*-*-*-*--------------*-*-*-*------------*-*-*-*--------------
حالا با هم ميبينيم که يک تابع پي اچ پي از چه قسمت هاي تشکيل شده :
PHP:
ECHO " Text ";
خوب کد بالا يه ديد کلي از تابع هاي پي اچ پي بود بيشتر تابع ها به اين صورت هستند ولي همه نه بعضي ها فرق دارند
حالا توضيح ميدم :
ECHO که اسم تابع بود بعدش چون ما خواستين از يک متن استفاده کنيم از علامت " استفاده کردين اين علامت نشان دهنده اينه که از اين يه يعد متن عادي هست Text هم که متنمون هست و بعد از " براي بستن متن اسنفاده کرديم و
در آخر هم با ; کد را بستيم ( توجه در بيشتر توابع پي اچ پي بايد آخر آنها را با ; بست پس حتما اين کار را بکنيد )
-----------------------------------------------------------------

حلا درساي بعدي رو بعدا ميدم ! :D


سلام - قسمت دوم !
8.gif
8.gif
ديدين ادامه دادم !
تو اين قسمت ميخوام نحوهي سواختن يک فرم ارتباط با ما رو نشون بدم
نحوه کار اين جور فرم ها اينجويه :
2 حالت وجود دارد :
1. ذخيره اطلاعات درون بک بانک اطلاعاتي مانند MySQL
2. ايميل کردن اطلاعات براي دارنده سايت

خوب هوتون ميدونيد که راه دوم راحتره و امن تره
راه دوم چند خط بيشتر برنامه نوسيس نميخواد !
50.gif



براي نوشتن راه دوم اول بايد يه فرم ارتباط با ما ايجاد کنيد که ربطي به پي اچ پي ندارده ولي ميگم :
HTML:
<p>Contact us : </p>
<form action="save.php" method="POST">
  <p>Your name : <input type="text" name="name" size="20"></p>
  <p>Your Email&nbsp; Address : <input type="text" name="mail" size="20"></p>
  <p>Your comment : </p>
  <p><textarea rows="7" name="comment" cols="28"></textarea></p>
  <p><input type="submit" value="Submit" name="B1"></p>
</form>
خوب کد بالا اطلاعات رو به روش پست براي پي اچ پي ميفرسته
(حالا يه مقدار در باره فرق بين پست و گت خرف ميزنم ! ( اگه ميدونيد :
158.gif
)
روش گت get محدوديت داره ولي در بعضي موارد واقعا کاربرديه
در روش پست اطلاعات ارسالي در آدرس نشون داده ميشه :
http://www.domain.com/save.php?name=pedram&[email protected]&comment=this is a test
در کد بالا اطلاعات زير به فايل save.php ارسال شده :
name : pedram
mail : [email protected]
comment : this is test
خود ديديد که اطلاعات ديده ميشه و اگه اطلاعاته مهمي باشه لو ميره ! :D
محدوديت هم داره اونم اينه که هر اطلاعات ( هر فيلد ) نميتونه بيشتر از 255 تا باشه بعني اگه از اين مقدار بيشتر باشده همش ارسال نميشه !
25.gif

ولي پست وحدوديت نداره و آدرس به اين صورت هستش :
http://www.domain.com/save.php
هيچي به آدرس اضافه نميشه و اطلاعات با امنيت بيشتري ارسال ميشه و هيچمحدوديتي نداره پس از پست بيشتر استفاده کنيد !
حالا برگرديم به کار خودمون ! :D


اين رو توي کد پي اچ پيتون بزاريد : ( sve.php )
PHP:
<?PHP
//Adrese email shoma : 
$to = "[email protected]";
//END
$name = $HTTP_POST_VARS['name'];
$mail = $HTTP_POST_VARS['mail'];
$comment = $HTTP_POST_VARS['comment'];
$message = "
Hi ! \n
some one send a email from your contact us page : \n
From : $name \n
comment :  \n
$comnent  \n
END " ;
$mail_headers = "";
$mail_headers .= "From: $mail\n";
$mail_headers .= "Reply-to: $mail\n";
$mail_headers .= "Return-Path: $mail\n";
mail($to,'Contcat us page - $name ',$message,$mail_headers) or die("Can't send email - please tryagain latar ";
echo("Your Comment Saved ! ");
?>

خوب حالا به تحليل اين کد ميپردازيم :
خط اول : شروع کد
خط دوم : توضيحات ( در پي اچ پي براي گزاشتن توضيح در کد بايد اول دو تا / بزاريد ( // ) يا اولش */ و آخريش /* بزارين )
حط سوم : يک متغير که توش آدرس ايميل شما نوشته شده - متغير هاي با $ شروع ميشود
خط چهرم : باز هم يک توضيح
خظ پنجم : فهموندن که متغير name$ چيه ؟ اصلا چه چيزي بايد تو اونها ذخيره شده براي اين کار اينجوري کار ميکنيم :
براي ارسال به وسيله پست :
PHP:
$motegayer = $HTTP_POST_VARS['namefild'];
براي ارسال به وسيله گت :
PHP:
$motegayer = $HTTP_GET_VARS['namefild'];
البته راه هاي ديگه اي هم وجود داره که اين راه استاندارد ترينشونه
خط ششم و هفتم مانند خط پنجم هستند
و اما خط هشتم :
در اين خط ما يک هدر ( سرانداز ! ) واسه ناممون ميسازيم که البته اين هدر يک هدر استاندارد نيست !
البته در خط هشتن اين هدر خليه و ما فقط يک استرينگ خالي ميسازيم
خط نهم :
در اين خط ما به متغير mail_headers يک مقدار اضافه ميکنيم ( براي اضافه کردن به يک متغير کافيه که قبل از مساوي يه نقطه ( . ) اضافه کنيد )
در اين هدر ما نام فرستنده نامه را مشخص ميکنيم
در خط بعدي ( دهم ) اينکار تکرار ميشه و ما مسيري که براي جواب دادن نامه بايد به آن ارسال شود را مشخص ميکنيم
در خط بعديش ( يازدهم ) ما مسيري براي پس فرستادن ايميل را مشخص ميکنيم ( مثلا وقتي که ميل باکس شما پر شده باشد نامه برگش زده خواهد شد )
خط دوازدهم :
در اين خط ما نامه را بوسيله اسال کننده نامه در پي اچ پي ارسال ميکنيم :

PHP:
mail('[email protected],'SUBJECT','EMAIL BODY HERE','HEADER HAYE EMAIL);
اون ( die مردن ) واسه اينه که اگه نتونست ايميل رو ارسال کنه صفحه رو متوقف کن ( بکش ! ) و ادامه ندا و پيام داخلش رو نشن بده ( Can't send email - please tryagain latar )
اين موقعي رخ ميده که سرور شلوغ باشه يا به اينترنت وصل نباشه ! ( مثل موقعي که در لومال تستش ميکنيد )
در خط سيزدهم :
در اين خط هم يه پيام به کاربر ميديم و بهش ميگيم که پيام شما ذخيره شد اگه ايميل ارسال نشده باشه اين نشون داده نميشه چون اون DIE صفحجه رو متوقف کرده !
خط آخر :
کد پي اچ پي تموم شد
8.gif

---------------------
خسته شدم ! دفعه بعد بقيه ( آموزش هاي بعدي )



ربطی نداره فک کنم ب خواتر کلاسش هست !
قعلا یه قسمت دیگه آماده کردم :
سلام - باز اومدم !
50.gif
50.gif
50.gif
85.gif
85.gif

اين دفعه ديگه اسکريپت آماده درس نميدم و نکته هاي ساده و کيليدي رو ميگم ( نکته ها خيلي ساده و کاربردي هست
50.gif
)

خوب
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% : اوليش :
اول اينکه چجوري تو يه if تعييد کنيم که اگه مثلا date$ مساوي فلان نبود ادامه بده ؟ :
براي اين کار قبل از تعيرف استرينگ يا قيب از == يک علامت تعجب ميزاريم ( ! ) يعني : ==! - يعني اگه مساوي اون نبود ادامه بده : يک مثال - در مثال پايين اگه مقدار date$ مساوي با test نباشه ادامه ميده اگه مساوي باشه ادامه نميده

PHP:
<?PHP
if(!$date=="test"){
echo("Hello world ! ");
}
?>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% : دوميش :
اگه خواستيم که صفهمون ارور(error) نده ( يعني اگه يه مشکلي پيش امد ( مثلا وقتي ميخواد ايميل بفرسته و سرور به اينترنت وصل نباشه )
تو اول صفحمون يکي از اينا ( بسته به نوع کارتون داره ) اضافه ميکنيم :
PHP:
<?PHP
//hich errori neshon nemide
error_reporting (0);
//fagat FATAL ERROR ro neshon mide 
error_reporting (E_ERROR);
//Fagat WARNING haro neshon mide 
error_reporting (E_WARNING);
// Fagat PARSE error haro neshon mide 
error_reporting (E_PARSE);
//fagat NOTICE haro neshon mide 
error_reporting (E_NOTICE);
?>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% : سوميش :
گرفتن USER AGENT ( مرور گر کاربر ) ( با استفاده از اين ميشه تشخيس داد که کاربر از چه مرور گري استفاده ميکنه ) :
PHP:
<?php 
echo $HTTP_SERVER_VARS['HTTP_USER_AGENT']; 
?>
اين کد اينو خروجي ميده :
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
البته در مرورگر ها و ويندوز هاي مختلف فرق داره
اين اسکريپت هم اگه از آي اي استفاده کنيد يه چيز از خود در ميکنه ! ( منو جو گرفت )
PHP:
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
   echo 'You are using Internet Explorer.<br />';
}
?>
حلا يه نموره در باره strpos با هم حرف بزنيم اين يه چيز تو مايه هاي find خودمونه ترتيبشم به اين صورته :
PHP:
strpos("matne asli","Matni ke bayad peyda kone" );
//////////////////////
injori ham mishe : 
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);
اگه پيدا کرد TRUE خروجي ميده اگه نکرد FALSE خورجي ميده

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% : حرف آخر :
خوب اين چند تا چيزه جالب و بدرد بخور که اميد وارم به دردتون خرده باشه
در آخر هم بايد بگم خدا پدر آصف رو بيامرزه که اگه اين QSmile نبود بايد همشو آنلاين مينوشتن !
90.gif

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



حالا قسمت چهارم !
سلام دوباره
21.gif
21.gif

70.gif
70.gif
70.gif
70.gif





اين دفه ميخوام ياد بدم که چجوري يه سيستم نمايش تعداد بازديدکنند ها بسازيم اين سيستم فقط نياز به 2 فايل داره :
فايل اول : - add.php
توش اينو بزاريد بعدا ميگم چه تغييري نياز داره و فايل رو باز ميکنيم ( تحلبل )
PHP:
<?PHP
    $big_num = file("num.txt");
    $big_num = $big_num[0];
    if(!$big_num or $big_num == ""){ $big_num = 1; }
    $big_num ++;
    $num_file = fopen("num.txt", "w");
    fwrite($num_file, $big_num);
    fclose($num_file);
?>
خط اول : شروع پي اچ پي
خط دوم : معيت کردن فايلي که آمار قبلي رو ازش بخونه شه ( معمولا با فايلي که روش نوشته ميشه يکي هست در اينجا فايل num.txt هست
براي خواند يک فايل در پي اچ پي ميتونيم از readfile و file استفاده کنيم که البته اين دو با هم فرق دارن ولي تو اينجا از جفنشون ميشه استفاده کرد
خط سوم : در اين جا مشخص ميکنيم که ما خط اول رو نياز دارم ( 0 )
خط چهارم : مشخص ميکنيم که اگه استرينگ وجود نداشد ( اول ! گذاشتيم ) يا اگه خلي بود ( ""== ) اين متغير ( استرينگ ) big_num$ را روي 1 تنظيم کنه اي موقه اي استفاده ميشه که فايل خالي باشه ( اولين بار باشه که کونتور اجرا ميشه )
خط پنجم : در اين خط ما به متغير big_num$ يک شمازه اضافه ميکنيم ( ++ )
خط ششم : در اين خط هم ما فايل را به به قصد نوشتن باز ميکنيم ميبينيد گه در انتخاب دوم w رو اضافه کدريم کل چيز هايي که ميتونيم انتخاب کنيم اينها هست :
r : باز کردن فايل فقط براي خواندن
r+ (اول r بعد + : +r ) : باز کردن فايل براي خواند و نوشتن ( نشانهگر را در اول فايل قرار ميدهد )
w : باز کردن فايل فقط براي نوشتن - نشانه گر را در اول فايل قرار ميدهد يعني در هنگام نوشتن محتويات قبلي پاک ميشود - اگر فايل وجود نداشته باشد فايل سعي در ساختش ميکنه
w+ (اول w بعد + : +w ) : باز کردن فايل براي نوشتن و خواندن - نشانه گر در ابتداي فايل قرار ميگيريد - اگر فايل وجود نداشته باشد سعي در ساخت آن ميکند
a : باز کردن فايل براي نوشتن - نشانه گر در انتهاي فايل قرار ميگيرد
a+ (اول a بعد + : +w ) : باز کردن فايل براي نوشتن و خواندن - نشانه گر در انتهاي فايل قرار ميگيرد - اگر وجود نداشت سعي در ساختنش ميکند
x : ساختن و باز کردن فايل براي نوشتن - نشانه گر در اول فايل - اگر فايل وجود داشت fopen خورحي FALSE ميدهد - اين فقط در فايل هاي لوکال کار ميکند
x+ (اول x بعد + : +x ) : ساختن و باز کردن فايل براي نوشتن و خواندن - نشانه گر در اول فايل - اگر فايل وجود داشت fopen خورحي FALSE ميدهد - اين فقط در فايل هاي لوکال کار ميکند


خط هفتم : نوشتن بر روي فايل ( num_file$ )
خط هشتم : بستن فايل
خط نهم : پايان کد پي اچ پي !
79.gif

-
خوب
18.gif

حالا بايد اينو تو صفحه اصليتون اينکلود ( include) کنيد با اين دستور :
PHP:
<?php
include("add.php");
?>
خوب حالا يه فايل خالي درست کنيد و سي اچ مود ( CHMOD ) آن را روي 777 قرار دهيد اسمش رو هم num.txt بزاريد
حالا هر جا خواستيد که تعداد بازديد کننده ها رو ببينيد فايل رو اينکلود کنيد :
PHP:
<?php
include("num.txt");
?>
-----------------------------تمام شد !
70.gif
70.gif
70.gif
70.gif
70.gif


سي اچ مود : CHMOD :
CHMOD کردن فقط در سرور هاي لينوکس نيازه و ويندوز نيازي به سي اچ مود کردن نداره
براي اين کار در برنامه هاي اف تي پي کليک راست کنيد و بر روي Permission يا properties کليک کنيد و تمام تيک ها را بزنيد يا عدد را به 777 تغيير بدين
همين !
--------------
تا دفعه بعد خدا حافط
94.gif
 

carp3

Member
سلام !
20.gif

بعد از يک ماه تاخير بالاخره قسمت شيشومشو هم نوشتم !
8.gif

تو اين قسمت ميخواه در باره جي دي صحبت کنم و راه استفاده از اونو بگم ...
18.gif

اول يه مقدار مقدمه !
57.gif


پي چ پي فقط به دادن خروجي متن محدود نيست شما ميتونيد عکس هاي متعددي با فرمت هاي متنوع با پي اچ پي خروجي داشته باشيد مثل PNG , GIF , JPG . WBMP , XPM و البته چندين فرمت ديگر که بايد پي اچ پي رو با اون ساطگاري بدين
پي اچ پي ميتونه عکس رو مستقيم به سوي مرو گر هدايت کنه
البته پي اچ پي به صورت پيش فرض اي ساخت عکس پشتيباني نميکنه که بايد آن را نصب کنيد ( GD ) البته اين کتابخانه ( library ) روي بيشتر سرور ها به صورت پيش فرض نصب هست ...
اما اگر نصب نبود ميتوانيد اين را از http://www.boutell.com/gd/ اينجا دانلود و نصب کنيد و يا به مدير سرور خود بگوييد که آن را نصب کند ...
در جيدي پشتيباني از PNG در نسخه 1.6 به بعد به وجود آمد و پشتيباني از GIF در نسخه -2.0.28 به وجود آمد

يک مثال :
PHP:
<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
براي استفاده از مثال بالا در صفحهات خود از اين دستور استاده کنيد :
HTML:
<img src="button.php?text=text">
حالا اين مثال چيکار ميکنه ؟
مثال بالا ( button.php ) اول فايل images/button1.png رو باز ميکنه و بعد متغير TEXT رو روش مينويشه ( به صورت يک لايه جدا )
مثلا اگ شما دکمه هاي يکجور زيادي با متن متفاوت داريد ميتوانيد با استفاده از اين اسکيپت در وضا صرفه جويي کنيد و ديگر همه دکمه ها را در سايت آپلود نکنيد و به عبارتي دکمه به صورت ديناميکي ( dynamically ) ساخته ميشود








در پايين ليست و نحوه استفاده تمامي توابع gd نوشته شده :

gd_info
دادن اطلاعات در باره نسخه و ديگر چيزهاي GD نصب شده
:
اين تابع خروجي از نسخه چي دي و فرمت هاي پشتيباني شده توسط جي دي و ... را به شما ميدهد :

PHP:
<?php
print_r(gd_info());
?>
مثال بالا خروجي زير را بدنبال داره ( براي همه يکسان نيست )
کد:
Array
(
    [GD Version] => bundled (2.0.28 compatible)
    [FreeType Support] => 1
    [FreeType Linkage] => with freetype
    [T1Lib Support] => 
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPG Support] => 1
    [PNG Support] => 1
    [WBMP Support] => 1
    [XBM Support] => 1
    [JIS-mapped Japanese Font Support] => 
)

------------------------------
getimagesize
گرفتم اندازه عکس ( ابعاد)
با استفاده از اين تابع ميتوان اندازه عکس رو به دست آورد مثلا 48*52
اين تابع از GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, or WBMP پشتيباني ميکند
مثلا :
PHP:
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>
در نسخه 4.0.5 به بعد از URL هم پشتيبانش شد :
PHP:
<?php 
$size = getimagesize("http://www.example.com/gifs/logo.gif");

?>


------------------------------
image_type_to_extension
گرفتن پسون عکس براي image type ()
روش استفاده :
PHP:
image_type_to_extension ( int imagetype [, bool include_dot] )



-----------------------------
image_type_to_mime_type
گرفتن mime type يک عکس
( mime type در شناسوندن نوع عکس ( مثلا PNG ) به مرور گر کاربرد دارد البته در حاهاي ديگر هم کاربرد دارد )
مثال :
PHP:
<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

اين تابع ميتواند حاوي يکي از خروجي هاي زير باشد :
خروجي نوع عکس
IMAGETYPE_GIF image/gif
IMAGETYPE_JPEG image/jpeg
IMAGETYPE_PNG image/png
IMAGETYPE_SWF application/x-shockwave-flash
IMAGETYPE_PSD image/psd
IMAGETYPE_BMP image/bmp
IMAGETYPE_TIFF_II(intel byte order) image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) image/tiff
IMAGETYPE_JPC application/octet-stream
IMAGETYPE_JP2 image/jp2
IMAGETYPE_JPX application/octet-stream
IMAGETYPE_JB2 application/octet-stream
IMAGETYPE_SWC application/x-shockwave-flash
IMAGETYPE_IFF image/iff
IMAGETYPE_WBMP image/vnd.wap.wbmp
IMAGETYPE_XBM image/xbm

توجه : اين تابع نيازي به کتابخانه جي دي ندارد
15.gif


--------------------------------------
image2wbmp
دادن خروجي به يک فايل يا مرور گر
مثال :
PHP:
<?php

$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // output the stream directly

?>


لیست بقیه توابع رو بعدا میزارم ( حد اکثر تا هفتهی دیگر ...)
 

carp3

Member
-----------------
imagealphablending
دادن حالت محو بودن به يک عکس يا نوشته
به قول شير فرهاد اينکه گفتي يعني چه ؟
يعني اين :
mphp-logo.jpg


اگه تو عکس بالا دقت کرده باشين ميبينيد که هم carp3 ديئه ميشه هم آرم پي اچ پي !
يعني تو هم مخلوط شدن ! يا اگه با فوتشاپ کار کرده باشين اوپاسيتي رو کم ميکونه ! :D

اين مثال نداره !
توجه : اين تابع در جي دي 2.0.1 به بعد پشتيباني ميشود ...


--------------------
imageantialias
جلوگيري از نام مستعار يا خير ...
نحوه استفاده :
PHP:
imageantialias ( resource im, bool on )

----------------------
imagearc
با اين تابع ميتونيد عکس هاي هندسي بکشيد مثل دايره - بيضي - تخم مرغ
24.gif
!
نحوه استفاده :
PHP:
imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color )
مثال :

PHP:
<?php

// create a 200*200 image
$img = imagecreatetruecolor(200, 200);

// allocate some colors
$white = imagecolorallocate($img, 255, 255, 255);
  
// draw a white circle 
imagearc($img, 100, 100, 150, 150, 0, 360, $white);

// output image in the browser
header("Content-type: image/png");
imagepng($img);
  
// free memory
imagedestroy($img);

?>
اين مثال يک دايره در يک عکس 200*200 درست ميکنه

----------
imagechar
کشيدن يک حرف به صورت افقي :
مثال :
PHP:
<?php

$im = imagecreatetruecolor(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 0, 0, 0);
$black = imagecolorallocate($im, 100, 100, 100);

// prints a gry "P" in the top left corner
imagechar($im, 20, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>


----------
imagecharup
عين تابع بالا ولي با اين فرق که حرف رو به صورت عمودي مينويسه :
PHP:
<?php

$im = imagecreatetruecolor(100, 100);

$string = 'Note that the first letter is a N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 150, 150, 150);

// prints a black "Z" on a white background
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>
---------------
imagecolorallocate
احتصاص دادن يک رنگ به يک عکس
مثال :
PHP:
<?php

$im = imagecreatetruecolor('example.jpg');
// sets background to red
$background = imagecolorallocate($im, 255, 0, 0);

// sets some colors
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// hexadecimal way
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

-----------------------
imagecolorallocatealpha
احتصاص دادن يک رنگ به يک عکس ( حالت محو )
در مثال زير که يک مقدار پيشرفته است ولي راحته شما 3 تا دايره که تو هم محو شدن يا به عبارتي تو هم رقتن ! رو ميبينيد :
PHP:
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165; 
$blue_x   = 187;
$blue_y   = 125; 
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);   
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>



imagecolorat
گرفتن رنگ يک پيکسل از يک عکس :
PHP:
<?php
$im = ImageCreateFromPng("pic.png");
$rgb = ImageColorAt($im, 2, 2);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>
---------------
imagecolorclosest
گرفتن رنگ هاي بسته از يک عکس :
نحوه استفاده :
PHP:
 imagecolorclosest ( resource image, int red, int green, int blue )
// ya : 
imagecolorclosest($im, $r, $g, $b);

imagecolorclosestalpha
گرفتن رنگ هاي بسته از يک عکس : همراه با آلفا
توجه : اين تابع در جي دي 2.0.1 بخ بعد موجود ميباشد

بقیه رو بعدا ...
 

mehran_j

Member
كارت عاليه...مقالت بسيار علي و روان بود
ممنون....در ضمن ميتوني اونو به pdf تبديل كني و بذاري براي دانلود...اما به هر حال عالي بود
 
آخرین ویرایش:

livan

New Member
فایل پی دی اف

سلام به همه
مرسی از دوستان که لطف کردند و آموزش رو نوشتن
من یک فایل پی دی اف در مورد آموزش پی اچ پی میخوام
دوستان اگه لطف کنن لینک دانلودی چیزی دارن بدن که لازم دارم ناجور
 

I.NoBody

Active Member
دوستاني كه از اين مبحث استفاده كردند يا ارزشي براي كار carp3 قائل هستند، لطفاً روي دكمه تشكر مربوط به ايشون كليك كنند.
 

livan

New Member
آموزش وبلاگ نویسی یا ساخت وبلاگ

ضروری
سلام
اگه کسی در زمینه کد نویسی برای وبلاگ ( ساخت یک وبلاگ برای بلوگفا ) سر زسته ای داره و میتونه به من کمک کنه بگه
در مورد پی اچ پی هم اگه فایل پی دی اف دارین بذارین برای دانلود ممنون میشم اگه لطف کنین
ببخشید که این همه دستور دادم
متشکر
:rose:
ضروری
 

I.NoBody

Active Member
ضروری
سلام
اگه کسی در زمینه کد نویسی برای وبلاگ ( ساخت یک وبلاگ برای بلوگفا ) سر زسته ای داره و میتونه به من کمک کنه بگه
در مورد پی اچ پی هم اگه فایل پی دی اف دارین بذارین برای دانلود ممنون میشم اگه لطف کنین
ببخشید که این همه دستور دادم
متشکر
:rose:
ضروری
فکر کنم بهتره برای این مطلب یه تاپیک دیگه برنید
 

جدیدترین ارسال ها

بالا