i
در حال برنامه نویسی و آماده سازی نسخه جدید «وبگو» هستیم، در این نسخه قابلیت ها و ظاهر سایت به کلی متفاوت و کاملتر خواهد بود، این فرآیند زمانبر و از مدتی پیش شروع شده و همچنان ادامه دارد، روند پیشرفت پروژه در این قسمت به صورت درصدی مشخص است و به تناوب به روزرسانی می شود.
parsgreen.com
article

آشنایی با برنامه نویسی به زبان PHP

php

ایجاد وبسایت های استاتیک با صفحاتی از پیش طراحی شده مدتها است که جای خود را به صفحات داینامیک داده و دیگر کم تر سایتی را می توان یافت که محتوایش خط به خط به شیوه سنتی کدنویسی شده باشد، زبانهایی مثل asp , php و... تحولی نوین در وب ایجاد کرده و رفته رفته گوی سبقت را از دیگران ربودند، اما چرا php را انتخاب کنیم؟ پاسخ به این سوال به عوامل زیادی مربوط می شود چرا که هیچ زبانی کامل نیست ولی با توجه به مزیت ها از جمله رایگانی پی اچ پی، امکانات و قدرتمندی، دسترسی به منابع مختلف، سازگاری با انواع سرورها، استفاده گسترده و... توصیه می کنیم اگر علاقمند به فراگیری علم برنامه نویسی وب هستید پس از آموختن کلیاتی از css, html و javascript حتما دانشتان را با php کامل کنید، درست است که برنامه های مدیریت محتوا (CMS) کار را خیلی راحت کرده اند اما همیشه ایده هایی وجود دارند که در قالب آنها نمی گنجند و یا مشکلاتی پیش می آید که به دلیل مبهم بودن کدنویسی دیگران، ممکن است نتوانید آنها را رفع کنید یا دچار مشکل شوید.

آموزش php


شاید آموختن PHP در نگاه اول کاری پیچیده به نظر برسد اما اصولا برای یادگیری زبان های برنامه نویسی کافیست ایده های ذهنی مان را خط به خط روی کاغذی خیالی بنویسیم و سپس با توجه به شیوه نوشتن (syntax) هر زبانی به دنبال راه حل تبدیل و فهماندن ایده به سیستم شویم، از طرفی هیچ کس نمی تواند مدعی شود که همه چیز را می داند ولی دانستن اصول اولیه و داشتن تجربه تا حد رفع نیاز، چیزی است که با کمی تلاش و دقت می توانیم به آن دست یابیم؛ ما در آموزش هایمان سعی خواهیم کرد که در عین مختصر گویی به حد کافی نیز شما را با دنیای جالب کدنویسی php آشنا کنیم.

اجرای کدهای php در سیستم عامل


از آنجایی که php یک زبان سمت سرور (server side) است برای اجرای آن در سیستم خود نیاز به برنامه هایی تحت عنوان سرور مجازی دارید که امروزه به صورت رایگان در دسترس هستند، برای نمونه یکی از بهترین ها در آدرس زیر قابل دسترس است:
www.wampserver.com
همچنین:
www.appservnetwork.com
و همچنین:
www.apachefriends.org
پس از نصب هر یک برنامه های WampServer، AppServ یا XAMPP اکنون شما قادر به اجرای فایل های php روی سیستم خودتان خواهید بود، البته فایلتان را باید در ریشه سرور مجازی که معمولا پوشه ای با عنوان www است کپی نمائید؛ سپس در مرورگرتان به فرض عبارت http://localhost/example.php را بنویسید تا فایل example.php از فولدر www فراخوانی شود، اگر هم که به یک سرور آنلاین دسترسی دارید کار خیلی راحت تر است و کافی است فایلتان را به سرور منتقل کنید.

چند مثال با php


از آنجایی که فلسفه پیدایش php ایجاد صفحات داینامیک و استفاده از آن در وب بوده، لذا قابلیتهای این زبان در کنار کدهای ساده html قابل دسترسی است و این یکی از نقاط قوت آن محسوب می شود؛ برای شروع و آشنایی بیشتر به کدها و مثال های زیر توجه کنید:
<?php
echo "اولین کد php من!";
?>
توضیح:
- کدهای php بین دو تگ علامت سوال ، php و علامت سوال نوشته می شوند (شیوه استاندارد).
- دستور echo مقادیر را به خروجی ارسال می کند.
حال به کد زیر توجه کنید:
<?php
$text = "اولین کد php من!";
echo $text;
?>
پیش نمایش
توضیح:
- در کد بالا عبارت اولین کد php من! به جای پرینت مستقیم، ابتدا به یک متغیر داده شده و سپس آن متغیر به خروجی داده می شود (علامت $ نشان دهنده تعریف یک متغیر است).
حال به مثال زیر توجه کنید:
<?php
$num1 = 20;
$num2 = 50;
$total = $num1 + $num2;
echo $total;
?>
پیش نمایش
توضیح:
- کد بالا مقدار متغیر total را به خروجی خواهد داد و متغیر total برابر است با حاصل جمع دو متغیر num1 و num2 که اعدادی به دلخواه به آنها داده ایم.
- در آینده در رابطه با نحوه استفاده و تعریف متغیر ها بیشتر خواهیم گفت و مثال های بیشتری مطرح خواهیم کرد.
مثالی دیگر:
<?php
$name = 'webgoo.ir';
if ($name == 'webgoo.ir'){
    $hi = 'سلام وبگو!';
}
else{
    $hi = 'سلام ناشناس!';
}
echo $hi;
?>
پیش نمایش
توضیح:
- if (اگر) و else (در غیر اینصورت) برای ایجاد شرط به کار می روند و علامت == نشان دهنده برابری دو طرف آن است.
تقریبا هر آنچه که از وب بخواهید با php دستیافتنی است؛ در ادامه مطالب آموزشی در این باره بیشتر خواهیم گفت.
sectionدسته بندی: آموزش مقدماتی » PHP
related مطالب بیشتر:
» توابع (Functions) در php
» توابع کار با آرایه در php - بخش دوم
» دستورات شرطی if و else در php
» آرایه (Array) در برنامه نویسی php
» آشنایی و کار با متغیر ها (Variables) در php
commentنظرات (۱۰۴ یادداشت برای این مطلب ارسال شده است)
نویسنده: بهنام
زمان: ۰۰:۱۶:۳۷ - تاریخ: ۱۳۹۲/۱۲/۱۶
سلام
 require('#');
require_once('#');
include('#');
include_once('#');
میشه فرق این ها رو توضیح بدین واسم همشون یک کار رو میکنن ولی میخوام فرقشون رو بدونم
پاسخ: 
سلام
تمام موارد بالا برای وارد کردن فایلی دیگر در یک فایل PHP است، اما فرق آنها این است که با require اگر فایل مورد نظر در دسترس نباشد یا به فرض نام آن اشتباه باشد و... مفسر PHP از پردازش ادامه کدها خودداری می کند (require = حالت ضروری) اما برای include مفسر PHP ادامه کدها را پردازش می کند، پسوند once هم یعنی اگر قبلا فایل مورد نظر وارد شده باشد، دستورات مشابه بعدی نادیده گرفته می شوند (به فرض در یک حلقه اگر دستور include_once تکرار شود، تنها یک بار فایل وارد می شود).
نویسنده: بهنام
زمان: ۰۰:۲۶:۵۵ - تاریخ: ۱۳۹۲/۱۲/۱۸
سلام
$name = 'بهنام';
echo strlen($name);
چرا در تابع strlen کاراکتر های انگلیسی را دقیق می شمارد ولی کاراکتر های فارسی را دو برابر می شمارد به فرض در مثال بالا کاراکتر بهنام که 5 حرف است مقدار 10 برگردانده می شود علت چیست؟ چه کنیم که مانند الفبای انگلیسی دقیق شمارش کند آیا تابع ای به خصوص وجود دارد؟
پاسخ: 
سلام
مبنای کار تابع strlen بر اساس single-byte است نه کاراکتر، چون در زبان فارسی (و در کل UTF-8) کاراکترها multi-byte هستند، لذا باید از تابع mb_strlen استفاده کنید، مثال:
<?php
$text = 'بهنام';
$result = mb_strlen($text, 'UTF-8');
echo $result;
?>
نویسنده: بهنام
زمان: ۰۱:۰۰:۲۶ - تاریخ: ۱۳۹۲/۱۲/۲۸
سلام
میشه تک تک مد های این تابع رو توضیح بدید هرچی که هست
fopen('','a');
fopen('','r');
و...
پاسخ: 
سلام
لطفا به این آدرس مراجعه کنید، در جدولی به صورت کامل توضیح داده شده:
http://www.php.net/manual/en/function.fopen.php
نویسنده: بهنام
زمان: ۰۰:۳۱:۴۹ - تاریخ: ۱۳۹۳/۰۱/۰۱
میخواستم با زبان شیرین فارسی توضیحاتی بدونم
یه چیزی امروز کشف کردم امیدوارم خوشتان بیاد
<?php
$a = 'salam';
?>
<?=$a; ?>
<?=
کار echo رو انجام میده
ولی اگه همینو
<? echo $a; ?>
کار نمیکنه
و یا این مدلی
<?php = $a; ?> یا <?php = $a;?>
به این صورت خطای syntax میده و سوالی که میمونه
<? ?>
چه زبان برنامه نویسی هست؟ :D
پاسخ: 
سلام
همواره توصیه می کنیم که از تگ استاندارد PHP برای برنامه نویسی استفاده کنید یعنی به صورت زیر:
<?php ?>
سایر مواردی که اشاره کرده اید هم بخشی از قابلیت های مفسر PHP است که این نوع syntax را هم قبول می کند (البته نه در همه ی نسخه ها).
نویسنده: بهنام
زمان: ۱۷:۲۴:۱۰ - تاریخ: ۱۳۹۳/۰۱/۰۱
سلام میشه این تابع های زیر رو کاربردشون رو برام توضیح بدین اگه وقت گیر آوردین مثال هم بزنید ممنون
stripslashes
strip_tags
mysql_real_escape_string
پاسخ: 
سلام
تابع stripslashes برای حذف اسلش های زائد موجود در رشته است، به فرض برخی مواقع و بیشتر در سرورهای قدیمی قالبیت magic_quotes_gpc روشن بود که این قابلیت به رشته در مواردی خاص اسلش هایی به صورت خودکار اضافه می کرد (تا در مقابل نفوذ به دیتابیس ایمن سازی شود)، در صورتی که در هنگام نمایش متن، اسلش های اضافی باید حذف می شد.
http://ir1.php.net/stripslashes

تابع strip_tags برای ایمن سازی تگ های HTML استفاده می شود که در واقع کاراکتر > و < را به معادل HTML آنها تبدیل می کند.
http://ir1.php.net/strip_tags
نکته: برای درک دقیق عملکرد این تابع، زمانی که با echo از یک رشته حاوی تگ های HTML خروجی می گیرید، به سورس کد صفحه خروجی نگاه کنید (در ظاهر شاید تغییری دیده نشود!)
تابع mysql_real_escape_string نیز مربوط به اکستنشن اولیه و قدیمی PHP برای ارتباط با پایگاه داده است، این تابع رشته متنی دریافتی را از نظر وجود کاراکترهای خطرناک برای دیتابیس ایمن سازی می کند (با افزودن یک اسلش قبل از کاراکترها).
http://ir2.php.net/mysql_real_escape_string
نکته: در سرورهایی که magic_quotes_gpc روشن باشد، ابتدا باید این قابلیت را با stripslashes خنثی نمود، سپس از mysql_real_escape_string استفاده کرد، مانند تابع زیر:
<?php
function strClean($str){
if(get_magic_quotes_gpc){
$str = stripslashes($str);
}
$str = mysql_real_escape_string($str);

return $str;
}
?>
نویسنده: علی کینگ
زمان: ۱۶:۵۶:۰۸ - تاریخ: ۱۳۹۳/۰۱/۰۲
با سلام و خسته نباشید
عیدتون هم مبارک باشه
واقعا سایت بی نظیر و مفیدی دارین
سوالی داشتم در رابطه با دیکد کردن پسورد های ام دی 5
$upramz = md5 ($voroodi)
کد بالا به سادگی پسورد رو ام دی 5 میکنه
ولی برای دیکد کردنش چیکار میشه کرد؟
ممنون
پاسخ: 
سلام
تابع md5 برای کد کردن رشته به صورت بدون بازگشت و یک طرفه است! برای کد کردن قابل بازیابی از یکی از روش های آماده زیر استفاده کنید:
- روش اول با استفاده از openssl (این قابلیت باید در سرور فعال باشد):
<?php
$textToEncrypt = "My super secret information.";
$encryptionMethod = "AES-256-CBC";
$secretHash = "25c6c7ff35b9979b151f2136cd13b0ff";
//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash);
//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretHash);
//Result
echo "Encrypted: $encryptedMessage <br>Decrypted: $decryptedMessage";
?>
- روش دوم با استفاده از توابع base64، mcrypt و md5:
<?php
$key = 'password to (en/de)crypt';
$string = 'string to be encrypted';
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
var_dump($encrypted);
var_dump($decrypted);
?>
نکته: تابع md5 در اینجا به صورت غیرمستقیم و جهت ایجاد آرگومان برای توابع دیگر استفاده شده.
نویسنده: بهنام
زمان: ۱۰:۱۶:۲۴ - تاریخ: ۱۳۹۳/۰۱/۰۳
سلام استاد عزیز من واقعا از شما ممنونم امیدوارم سال خوبی را آغاز کنید با تشکر عیدتون مبارک
نویسنده: بهنام
زمان: ۱۷:۵۱:۴۲ - تاریخ: ۱۳۹۳/۰۱/۰۳
به مناسبت عید لطفا آموزش های کانکت به دیتابیس با روش PDO رو بذارین تو سایت تا کاربران نهایت استفاده رو ببرن ممنون البته یه پیشنهاد بود
پاسخ: 
خیلی ممنون از پیشنهادتان، مطالب سایت به صورت پیوسته ارائه می شوند، یعنی ابتدا باید بخش اکستنشن mysql به پایان برسد تا به اکستنشن های جدیدتر بپردازیم.
نویسنده: علی کینگ
زمان: ۰۳:۵۴:۵۴ - تاریخ: ۱۳۹۳/۰۱/۰۴
با سلام مجدد و خسته نباشید
روش های فوق رو برای دیکد کردن پسورد ام دی 5 تست کردم ولی جواب نداد
البته من تازه وارد هستم اگه میشه مثال دقیق تری بزنید
برای مثال 0160 رو به ام دی 5 تبدیل کردم و خروجی برابر با
22f112832359ba4c98397b3401367fce
شد... حالا من به صورت زیر
$secretHash = "22f112832359ba4c98397b3401367fce";
در سورس کد اولی که دادین وارد کردم و اجرا کردم و خروجی شد
Encrypted: UeWsrGeCq2bCKpcVb4Mo1Cse9yt15AdVJpf1gDCrgsw=
Decrypted: My super secret information.
دلیل چیست؟
از سورس کد دوم هم چیزی نفهمیدم
واقعا ممنون
پاسخ: 
سلام
دوست گرامی عرض کردیم md5 یک تابع برای ایجاد کد به صورت یک طرفه است، یعنی کدها قابل بازگشت به حالت اولیه نیست، در دو روش گفته شده در یک قسمت عبارت اصلی و در یک قسمت کلمه رمزی تعیین می کنید (که فقط رمز برای شما مشخص است و برای دیکد کردن به کار می رود)، هر دو روش کاملا گویا است و در هر دو حالت یک عبارت فرضی به همراه رمز فرضی، اینکد و سپس دیکد شده اند (به معنی متن انگلیسی به کار رفته در مثال ها توجه کنید!)
نویسنده: بهنام
زمان: ۱۸:۰۰:۰۴ - تاریخ: ۱۳۹۳/۰۱/۰۵
سلام
تابع mysql_fetch_assoc
و تابع mysql_fetch_array
چه کاری انجام میدهند و وظیفشون چیه
و فرقشون چیه؟
و کدام یکی پرکاربرد ترینه؟
پاسخ: 
سلام
تابع mysql_fetch_assoc برای استخراج مقادیر پرس و جو از دیتابیس است که در این روش نتیجه حاصله به صورت یک آرایه است که در آن نام ستون های جدول به عنوان کلید آرایه در نظر گرفته می شود، به فرض اگر در جدولی دو ستون با نام id و name داشته باشیم، به روش زیر می توان از مقادیر آنها خروجی گرفت:
while($row = mysql_fetch_assoc($result)){
echo $row["id"];
echo $row["name"];
}
تابع mysql_fetch_array نیز همین کار را انجام می دهد، منتها علاوه بر کلید اصلی (نام ستون)، مقادیر آرایه با کلیدهای عددی نیز قابل دریافت است، در این شیوه اولین ستون با کلید 0 و افزایش به همین صورت تا آخرین ستون قابل دسترسی است، به فرض با توجه به مثال بالا، در قسمت echo هم می توان id و هم عدد 0 را قرار داد، برای name هم می توان name و هم عدد 1 را قرار داد (این شیوه در موارد خاصی به کار می آید که این بسته به هدف برنامه نویس دارد، در بیشتر موارد تابع mysql_fetch_assoc کافی خواهد بود).
نکته 1: استفاده از هر کدام از توابع فوق تاثیر خیلی محسوسی در بهینه تر شدن کار ندارد.
نکته 2: علاوه بر توابع فوق، تابع mysql_fetch_row نیز وجود دارد که صرفا کلیدها به صورت عددی قابل دریافت هستند.
نویسنده: کیانی
زمان: ۲۰:۱۱:۴۵ - تاریخ: ۱۳۹۳/۰۱/۱۲
سلام
سایت فوق العاده ای دارید
در رابطه با آموزشهای php باید بگم که من خودم کلی مطالب از اینترنت درباره php خوندم ولی نمیدونم چه طوری میشه در قالب یک پروژه ازشون استفاده کرد اگر آموزش در قالب یک پروژه باشه عالی میشه
مثلا آموزش ساخت یک cms با php
مرحله به مرحله تو سایت بزارید
راستی چرا آموزش ها رو به صورت ویدئو منتشر نمی کنید؟
با تشکر
پاسخ: 
سلام
خیلی ممنون از پیشنهادات شما، در پاسخ باید عرض کنیم ساخت یک CMS مباحث خیلی زیادی دارد که به هیچ وجه در یک یا چند مطلب قابل طرح نیست، این نوع موارد را باید با از کنار هم قرار دادن آموزش های کاربردی مختلف و نوشتن پروژه های کوچک تر و به تدریج یاد بگیرید (به جرات می توان گفت آموزش کاملی در این خصوص در وب وجود ندارد، چرا که چنین مبحثی به دلیل گسترده بودن قابل طرح نیست!).
در مورد آموزش ویدئویی، نوع کار عمدتا به برنامه نویسی ارتباط دارد و برنامه نویس نیز عموما باید کد نویسی کند، لذا خیلی متداول نیست که کدنویسی را با فیلم آموزش دهیم!
نویسنده: کیانی
زمان: ۱۸:۴۲:۰۲ - تاریخ: ۱۳۹۳/۰۱/۱۴
سلام
ممنون از پاسخگویی شما دوست عزیز
نویسنده: الناز
زمان: ۱۶:۰۱:۳۹ - تاریخ: ۱۳۹۳/۰۱/۱۸
خیلی جامع و مفید توضیح دادید. PHP رو میشه به عنوان یکی از زبان های قدرتمند تحت وب دونست
ممنون
نویسنده: ضحی
زمان: ۱۲:۴۲:۵۲ - تاریخ: ۱۳۹۳/۰۱/۲۳
سلام. با تشکر بابت وقتی که میذارید و به سوالات پاسخ میدین
من یه سوال داشتم. یه شرکتی یه سایتی برای دوستم با جوملا طراحی کرده اند اما روش وارد شدن به بخش مدیریت رو بهش نگفتن فقط دو تا فیلم آموزشی واسش گذاشتن که نحوه کار رو بهش نشون میده. اما آدرس صفحات در اون فیلم آموزشی با استفاده از سرور مجازی و لوکال هاسته.
الان من توی سایت اصلی که روی نت بارگذاری شده نمیتونم بخش مدیریت رو پیدا کنم. چه راهی واسه پیدا کردن اون وجود داره و اصولا سیستم دسترسی به بخش مدیریت چجوریه؟
لازم به ذکره که اون شرکت هم منحل شده
ممنون میشم اگه جواب سوالم رو بدین
پاسخ: 
سلام
لطفا سوالات غیر مرتبط با مبحث را از طریق فرم تماس مطرح کنید!
بخش مدیریت سایت های جوملایی معمولا به صورت نمونه آدرس زیر است:
http://yoursite.com/administrator/index.php
نویسنده: omid
زمان: ۰۳:۰۷:۲۵ - تاریخ: ۱۳۹۳/۰۱/۲۹
سلام
دوستان من چند روز تو سایت ها دنبال چند کد php می گردم که نتونستم پیدا کنم به این نتیجه رسیدم که مشکلم رو با کسانی که php بلد هستن در میان بگذارم ممنون میشم راهنمائیم کنید
کدهای درخواستی شامل :
1- برنامه ای بنویسید که تشخیص دهد این عدد اول است .
2- برنامه ای بنویسید که تشخیص دهد عدد زوج است یا فرد .
3- برنامه ای بنوسید که حروف را برعکس کند . علی (ی ل ع)
4- برنامه ای بنویسید که تشخیص دهد این عدد اول است .
5- با استفاده از تابع های SUBSTR و SUBLEN برنامه ای بنویسید که نشان دهد در یک عبارت صد حرفی چند فاصله وجود دارد .
با تشکر
پاسخ: 
سلام
دوست گرامی هدف سایت راهنمایی در حل مشکلات است نه انجام تکالیف کاربران!
لطفا سعی کنید بخشی از کدها را خودتان بنویسید، اگر در بخش به خصوصی دچار مشکل شدید، مطرح کنید تا کمکتان کنیم.
paged صفحه 3 از 7




more لطفا دقت کنید که یادداشت های زیر منتشر نشده و حذف خواهند شد:
- یادداشت های خارج از موضوع این مطلب.
- سوالات کلی، غیر ضروری و مشکلاتی که هیچ تلاشی برای رفع آن نکرده باشید.
- نظرات حاوی کدها و اسکریپت های خیلی طولانی (به طور مثال کد کامل قالب وبلاگ).

2 × 5
 refresh
آگهی
seonab.com
طراحی نرم افزار اندروید
رنگین کمان عکس
Ranginkamaan.com

آرشیو عکس های باکیفیت با موضوعات متنوع...
پرشین آی تی
Persianit.net

آموزش و دانلود پروژه های برنامه نویسی سی شارپ (#C)