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 مطالب بیشتر:
» توابع کار با آرایه در PHP - بخش سوم
» حلقه for و while در php
» آرایه (Array) در برنامه نویسی php
» دستورات شرطی if و else در php
» توابع کار با آرایه در php - بخش اول
commentنظرات (۱۰۴ یادداشت برای این مطلب ارسال شده است)
نویسنده: یونس
زمان: ۲۳:۲۰:۴۵ - تاریخ: ۱۳۹۴/۰۹/۳۰
ممنون از مطالبتون
نویسنده: armita_sh
زمان: ۱۶:۴۹:۳۲ - تاریخ: ۱۳۹۴/۱۱/۰۶
با سلام
من برای لاگین به بخش ایمیل سایت یاهو از تابع curl استفاده کردم و با موفقیت لاگین کردم که توی لینک زیر میتونید ببینید
http://666666.1gb.ru/mail.yahoo.php
ولی وقتی با همین تابع میخوام صفحه اصلی یاهو رو ببینم صفحه سفید میاد لینک زیر
http://666666.1gb.ru/yahoo.php
وقتی کوکی ها رو پاک کنم اون موقع میشه صفحه اصلی رو دید لینک کوکی ها
http://666666.1gb.ru/cookie.txt
ممنون میشم منو در مورد علت اینکه چرا سایت یاهو سفید میاد راهنمایی کنین
این هم نمونه کد
<?php
$action="http://www.yahoo.com" ;
$ch = curl_init($action);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_POST, 0 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT , 'Mozilla/5.0 (Windows NT 5.1; rv:41.0) Gecko/20100101 Firefox/41.0');
curl_setopt($ch, CURLOPT_POSTFIELDS, "") ;
curl_setopt($ch, CURLOPT_COOKIEJAR, str_replace('','/',dirname(__FILE__)).'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, str_replace('','/',dirname(__FILE__)).'/cookie.txt');
$r=curl_exec($ch);
echo $r;
curl_close($ch);
?>
پاسخ: 
سلام
طبق بررسی و تست ما، پارامتر زیر را به کد اضافه کنید:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
همچنین قسمت مربوط به CURLOPT_USERAGENT را حذف کنید!
نویسنده: ارکانی
زمان: ۱۰:۴۱:۲۹ - تاریخ: ۱۳۹۴/۱۲/۱۳
سلام...
چطوری میتونم مقدار یک لیست باکس بعد از انتخاب کاربر داخل همون صفحه بگیرم... مثل انتخاب استان ها از لیست باکس اول و براساس انتخاب استان انتخاب شهرهای همون استان از لیست باکس دوم؟
پاسخ: 
سوالتان پاسخ کوتاهی ندارد و باید با کدنویسی وب آشنا باشید، برای این کار دو راه وجود دارد، نخست اینکه تمام اطلاعات از قبل در صفحه به صورت آرایه در کدهای جاوا اسکریپت وجود داشته باشند که با انتخاب باکس اول یک تابع اجراء شده و منطبق بر مقدار انتخاب شده، آرایه متناظر دریافت و چک باکس دوم به صورت داینامیک (با کدهای جاوا اسکریپت) ساخته شود، راه حل دوم این است که اطلاعات باکس انتخاب شده از طریق AJAX به سرور ارسال و نتیجه در باکس جدید نمایش داده شود.
مثال:
http://www.javascriptkit.com/javatutors/selectcontent.shtml
نویسنده: بهنام
زمان: ۲۲:۵۹:۴۵ - تاریخ: ۱۳۹۵/۰۱/۳۰
سلام استاد امیدوارم حالتون خوب باشه.
یه سوال داشتم:
اول این عکس رو ببنیید:
http://s7.picofile.com/file/8247771292/Untitled.png
میخوام نام فیلدها را در صفحه مرورگر با کد خاصی چاپ کنم
نام های : golestan, kerman, tehran
و در ضمن از mysqli استفاده بشه
راستی میخوام بر اساس فیلد ها select option اضافه کنم در صفحه سه تا.
پاسخ: 
سوالتان کلی است، دقیقا متوجه منظورتان نشدیم! اگر منظورتان این است که نام ستون های جدول را می خواهید استخراج کنید، به پرس و جویی شبیه نمونه زیر نیاز است:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
سپس در حلقه می توانید نام ستون ها را داشته باشید، برای select option هم قاعدتا باید با برنامه نویسی PHP آشنا باشید، یک نمونه:
<?php
//connect
$link = mysqli_connect("localhost", "your_user", "your_pass", "your_db");
//check connection
if (mysqli_connect_errno()) {
echo "Connect failed: " . mysqli_connect_error();
exit();
}
//select query
$loop = 0;
$result = mysqli_query($link, "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_db' AND TABLE_NAME = 'your_table'");
echo '<select name="your_select">' . "\n";
while ($row = mysqli_fetch_array($result)) {
//print_r($row);
if($loop > 0 && $loop < 4){
echo '<option value="' . $row['COLUMN_NAME'] . '">' . $row['COLUMN_NAME'] . '</option>';
}
$loop++;
}
echo "\n" . '</select>' . "\n";
//close
mysqli_close($link);
?>
نویسنده: علی
زمان: ۲۳:۱۱:۴۳ - تاریخ: ۱۳۹۵/۰۳/۱۷
وب سایتتون عالیه
نویسنده: پارصا
زمان: ۰۰:۲۵:۴۰ - تاریخ: ۱۳۹۵/۰۴/۲۹
با عرض سلام و خسته نباشید میخواستم بدونم برای طراحی سایت حتما لازمه که html , php , css , و javascript رو یاد بگیرم یا فقط یک یا دو تا از آن ها کافی است؟
پاسخ: 
در صورتی که بخواهید طراح حرفه ای باشید، یادگیری و تسلط بر موارد فوق الزامی است، اما اگر بخواهید در سطح مقدماتی و مبتدی سایت طراحی کنید، آشنایی با HTML و CSS و استفاده از یک CMS مانند وردپرس کفایت می کند!
نویسنده: ......
زمان: ۲۲:۳۷:۱۹ - تاریخ: ۱۳۹۵/۰۶/۰۵
سلام این فایل من قراره تکست رو روی تصویر چاپ کنه منتها فارسی رو جدا جدا و برعکس چاپ میکنه میشه تغییری توش بدید که این ایراد رفع بشه؟ ممنون میشم ازتون
<?php
header('Content-type: image/jpeg');
$jpg_image = imagecreatefromjpeg('sunset.jpg');
$white = imagecolorallocate($jpg_image, 0, 0, 0);
$font_path = 'font-farsi.ttf';
$text = "این نوشته برعکس چاپ میشه و جدا جدا";
imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
imagejpeg($jpg_image);
imagedestroy($jpg_image);
?>
پاسخ: 
تا آنجا که اطلاع داریم متاسفانه کتابخانه GD هنوز از فونت های فارسی به درستی پشتیبانی نمی کند!
نویسنده: mediast
زمان: ۱۴:۱۹:۰۸ - تاریخ: ۱۳۹۵/۰۶/۱۰
سلام امکان دارد در مورد کاربردهای
<?= 
هم اگر امکان داره توضیح بدهید ممنون
پاسخ: 
معمولا مفسر PHP برای تفسیر دستورات شما از روشی ثابت و یک یا چند شیوه جایگزین و اختیاری استفاده می کند، در حالت کلی تگ های PHP به صورت زیر شروع می شوند:
<?php
دلیل این حالت هم تمایز از تگ های مشابه سایر زبان ها و تفسیر دقیق توسط مفسر است، اما یک شیوه دستوری دیگر نیز برای شروع تگ PHP وجود دارد:
<?
این شیوه اگرچه کوتاه تر است، اما به دلایل مختلف توصیه نمی شود، چون امکان پشتیبانی نشدن آن (به دلیل غیر فعال بودن امکان short_open_tag در تنظیمات فایل php.ini) همواره وجود دارد، همچنین ممکن است این شیوه نگارشی با سایر زبان های مشابه مانند XML تداخل داشته باشد! اما در مورد دستور مد نظر شما، این شیوه جایگزین echo در PHP است و باز هم توصیه نمی شود که از آن استفاده کنید، اگرچه در نسخه 5.4 این امکان سوای short_open_tag و به صورت پیش فرض فعال شده است، اما به دلیل اینکه ممکن است در آینده مجددا به صورت انتخابی تغییر داده شود، بهتر است که استفاده نشود (مگر اینکه در صورت نیاز بتوانید، بعدها بدون زحمت زیاد کدهای خود را تغییر دهید!).
نویسنده: بهنام
زمان: ۲۲:۲۹:۵۸ - تاریخ: ۱۳۹۵/۰۶/۱۰
سلام استاد
تشکر میکنم بابت مطالبای مفیدتون من تازه با این سایت آشنا شدم و از مطالب های مفید ایده هایی گرفتم ولی یه سوالی در مورد htaccess ها دارم که بدجور ذهن منو مشغول کرده ممنون میشم پاسخ بدید.
سوال:
این کد هایی هست که در فایل htaccess نوشتم و به صورت زیر هست.
RewriteEngine On
RewriteRule post/(.*)/? mvc/index.php?title=$1 [S]
RewriteRule mvc/index\.php - [F]
سوال:
شنیدم فلگ [S] باعث میشه از رول بعدی در صورت مطابقت جلوگیری بشه ولی برای من کار نمیکنه
من اینجا گفتم در صورتی که ادرس سایت چیزی شبیه (localhost/post/نام تایتل پست) بود محتویات صفحه ایندکسی که در پوشه mvc هست با کوئری استرینگی که میفرستیم خب حالا این کارو واسه من انجام میده و با وارد کردن تایتل پست. برای من نمایش داده میشه و به صورت mvc ولی اگه به صورت مستقیم صفحه ایندکس را درخواست کرد خطای forbidden اجرا بشه و مشکلی که واسه من پیش میاد اینه که هم ادرس رو به صورت mvc وارد میکنم نیز خطای forbidden رو اجرا میکنه و چه به صورت فیزیکی ادرس ایندکس رو درخواست میکنم هم خطا رو اجرا میکنه که من فکر میکنم فلگ [S] برای من هیچ کاری انجام نمیده!
ممنون میشم ببینید مشکل از کجاست و بیشتر توضیحاتی در مورد جزئیات کد ها و مشکلات بدید با تشکر فراوان
پاسخ: 
حل دقیق این مشکل و ارائه کد نهایی نیازمند تست و آزمایش و خطا است، با این حال به نظر کد شما در یک دور قرار دارد و در هر حالت یکی از قانون ها اجرا می شود، در واقع وقتی حالت post فراخوانی می شود، به حالت mvc ریدایرکت می شود و این حالت خود مجددا در سرور به خطای Forbidden می انجامد (دقت کنید که اگر S هم اجرا شود، فقط برای post است، وقتی قانون post اجرا می شود، مجددا حالت mvc به سرور ارسال می شود و در این حالت فلگ F عمل می کند)، برای حل مشکل به نظر نمونه کدی شبیه به دستورات زیر مورد نیاز است:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^mvc/index\.php
RewriteRule mvc/index\.php - [F]
RewriteRule post/(.*)/? mvc/index.php?title=$1 [L]
نویسنده: ّبهنام
زمان: ۱۸:۱۹:۳۰ - تاریخ: ۱۳۹۵/۰۶/۱۲
استاد عزیز همین کد هارو من نوشتم باز هم در هر دو صورت ارور [F] رو صادر میکنه
این کد های htaccess
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/mvc/index\.php$
RewriteRule .* - [F]
RewriteRule post/(.*)/? mvc/index.php?title=$1 [L]
ممنون میشم تست کنید ببینید مشکل از کجاست خیلی درگیرشم دارم یه cms طراحی میکنم یه دنیا ممنون
پاسخ: 
از دستورات نمونه زیر پیروی کنید (تست شده!):
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+mvc(/\S*)?\s [NC]
RewriteRule ^ - [F]
RewriteRule post/(.*)/? mvc/index.php?title=$1 [L]
نویسنده: بهنام
زمان: ۱۵:۴۴:۲۹ - تاریخ: ۱۳۹۵/۰۶/۱۵
سلام
تشکر بابت جوابتون خیلی مفید بود و استفاده کردم
این THE_REQUEST جزء ارایه های
$_SERVER
نبود از کجا اومده ؟
پاسخ: 
این پارامتر مربوط به سرور Apache است، مقادیر THE_REQUEST شامل اطلاعات کامل از درخواستی است که مرورگر به سرور ارسال می کند، مانند:
"GET /index.html HTTP/1.1"
اما مقادیر REQUEST_URI صرفا آن قسمت از درخواست را شامل می شود که بعد از آدرس HOST قرار می گیرد، به طور مثال:
"/index.html"
نویسنده: بهنام
زمان: ۱۵:۲۲:۰۴ - تاریخ: ۱۳۹۵/۰۶/۱۶
خیلی مفید بود ممنون استاد گل.
نویسنده: Hp
زمان: ۱۶:۵۰:۵۷ - تاریخ: ۱۳۹۵/۱۰/۰۹
سلام
ببخشید من تازه واردم
میشه بگید
$text
یعنی چی
با تشکر فراوان
پاسخ: 
در برنامه نویسی زبان های مختلف، برای تعریف متغیر از روشهای قراردادی گوناگونی استفاده می شود که در PHP این کار با افزودن علامت $ به ابتدای رشته صورت می گیرد، همان طور که از اسم عبارت "متغیر" مشخص است، اینها می توانند در طول اجرای یک برنامه با مقادیر متفاوت مقدار دهی شوند، یعنی نام متغیر همواره ثابت است اما محتوای آن می تواند تغییر کند!
نویسنده: mh
زمان: ۱۶:۳۲:۵۹ - تاریخ: ۱۳۹۵/۱۰/۲۶
سلام
در نرم افزار dreamweaver cc چجوری میشه کدی که با زبان php نوشته ایم را run کرد
پاسخ: 
برای این کار بهتر است یک برنامه سرور مجازی (مانند WampServer) در سیستم خود نصب کرده و فایل های را از طریق localhost فراخوانی نمائید.
راهنمایی: پس از نصب برنامه، فایل های PHP را به دایرکتوری www انتقال دهید و از طریق آدرس مرورگر، با درج عبارت http://localhost و سپس مسیر فایل مورد نظر، آنها را فراخوانی کنید.
paged صفحه 7 از 7




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

5 × 6
 refresh
آگهی
رنگین کمان عکس
Ranginkamaan.com

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

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