نکاتی در مورد کار با URL در پی.اچ.پی (Working with addresses in PHP)
در برخی پروژههاتان شاید نیاز داشته باشید که به آدرسی که در نوار آدرس دیده میشود دسترسی داشته باشید و طبق آن تصمیمگیری کنید.
نمونه بارز این نوع استفاده، در تبدیل آدرسهای شامل علامت سؤال (؟) به آدرسهایی با کلمات کلیدی (یا در اصلاح آدرسهای Friendly) است.
مثلاً این آدرس را:
http://hamid.aftab.cc/?p=2
به این آدرس تبدیل میکنیم:
http://hamid.aftab.cc/about
در حقیقت وقتی کاربر سایت را با این آدرس:
http://hamid.aftab.cc/about
فراخوانی کرد، انتهای آدرس را اسکن میکنیم و اگر about دیدیم، همان چیزی را نشانش میدهیم که در حالت p=2 باید نشان میدادیم.
اما چگونه آدرس را اسکن کنیم و با آن کار کنیم؟
دستورات مختلفی برای به دست آوردن اجزای آدرس وجود دارد که سه مورد از مهمترینهای آنها را بیان میکنیم:
1-
$_SERVER['HTTP_HOST']
این دستور دامنه سایت را به دست میآورد. یعنی در حقیقت چیزی که بین // و اولین / قرار میگیرد.
به طور مثال اگر کد زیر را:
$url = $_SERVER['HTTP_HOST'];
echo $url;
در یک فایل ذخیره و فراخوانی کنید، با توجه به آدرس http://aftab.cc/modules.php?name=Tutorials&op=viewtut&id=483 نتیجه زیر را خواهید دید:
aftab.cc
2-
$_SERVER['REQUEST_URI']
این دستور، دامنه سایت را رها کرده و ادامه آدرس را به دست میآورد. یعنی از اولین / تا انتهای آدرس.
به طور مثال اگر کد زیر را:
$url = $_SERVER['REQUEST_URI'];
echo $url;
در یک فایل ذخیره و فراخوانی کنید، با توجه به آدرس http://aftab.cc/modules.php?name=Tutorials&op=viewtut&id=483 نتیجه زیر را خواهید دید:
/modules.php?name=Tutorials&op=viewtut&id=483
3-
$_SERVER['HTTPS']
با استفاده از این دستور، میتوان پروتکل صفحه را متوجه شد. یعنی فهمید که http است یا https
اگر این مقدار برابر با on باشد، یعنی پروتکل https است و اگر خیر، یعنی http است.
نکته پایانی:
قطعه کد زیر ترکیبی از استفاده از این سه نوع دستور را در قالب یک تابع به نمایش میگذراد. سعی کنید آن را تحلیل کنید:
/**
*
* @get the full url of page
*
* @return string
*
*/
function getAddress()
{
/*** check for https ***/
$protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
/*** return the full address ***/
return $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
/*** example usage ***/
echo getAddress();
?>
موفق باشید؛
حمید رضا نیرومند
.
- مطالب مرتبط:
- چگونه گزینه های انتخاب شده یک CheckBox را با کمک inputهای hidden به صفحه سوم منتقل کنیم؟
- در آمدی بر زبان PHP
- نوشتن بر روی عکس با GD در PHP
- آموزش نمایش تاریخ هجری شمسی با استفاده از PHP در صفحات وب
- چگونه با PHP از اطلاعات دیتابیس خروجی csv بگیریم که کاراکترها درست نمایش داده شوند؟
- ------------
- آموزش آپلود فایل از طریق یک فرم در پی.اچ.پی (How to upload a file in PHP)
- 100 اصل در تولید و توسعه نرمافزار
- نکاتی برای حفظ سلامتی در حین کار زیاد با کامپیوتر
- چگونه register_globals را بدون دسترسی به php.ini برابر با off یا on کنیم؟
- نکاتی در مورد کار با فایل ها در ویژوال بیسیک
ارسال سؤال یا نظر
1- سید امین:
بوسیله: , در: Wednesday, 2010 December 15-کد: 2553
ممنون به خاطر آموزش ها و نکات کاربردیتون
2- مشکین:
بوسیله: , در: Friday, 2011 December 23-کد: 3755
من سوال داشتم اینجا چجوری این آدرس
http://hamid.aftab.cc/?p=2
و به
http://hamid.aftab.cc/about
تبدیل میکنه، در حقیقت about کجا تعریف میشه؟
تا جایی که میدونم این کار و با فایل .htaccess هم میشه انجام داد ممنون میشم در اون مورد هم آمورش بزارید.
سوال دیگه هم داشتم که چجوری میتونم کد صفحه و غیر قابل دیدن کنم؟ مثلا بعضی پیج ها هستند که نه میشه کد های صفحه و دید و نه میشه کلا ذخیرشون کرد، ممنون میشم در این مورد هم توضیحی بدید.مرسی
3- محمد:
بوسیله: , در: Friday, 2015 October 16-کد: 13906
با سلام
من قالبی طراحی کردم و در وردپرس فراخوانیش کردم ولی به دلایلی در فانکشن وردپرس از دستورات پی اچ پی استفاده کردم تا دسترسی اسان تری در فراخوانی عکس ها و متن ها داشته باشم و در مورد متن موفق بودم اما در مورد عکس ها
ادرس رو کامل نمی یاره و عکس ها فراخوانی نمیشه
نمونه ای از کدی که گذاشتم رو براتون می فرستم
array( "name" => "مجموعه ",
"type" => "section"),
array( "name" => "متن خدمات",
"desc" => "",
"id" => "hirad_text",
"type" => "textarea",
"std" => ""),
array( "name" => "متن درباره ما",
"desc" => "",
"id" => "hirad1_text",
"type" => "textarea",
"std" => ""),
array( "name" => "متن تماس ما",
"desc" => "",
"id" => "hirad-call_text",
"type" => "textarea",
"std" => ""),
array( "name" => "گالری کوچک۱",
"desc" => "عکس مورد نظر را آپلود نمایید",
"id" => $shortname."home",
"type" => "text",
"std" => get_bloginfo('url') ."http://localhost/wordpress/wp-content/themes/css/images/.jpg"),
array( "type" => "close"),
و این همه قطعه کد فراخوانی برای عکس:

English
العربی
Swedish
François
