Boplo.ir
rss

من در Facebook


جستجو


آخرین مطالب

مطالب همینجوری

بر و بچ

MyView TakhteShasi Tween

دوستشون دارم

بیلبورد

دامین برای فروش: CleanCode.ir
FastFeed.ir
Fonvi.com

تماس


انواع و اقسام سفارشات طراحی و برنامه نویسی سایت پذیرفته میشه. از سایت حمایت از خرگوشهای صورتی گرفته تا سایت قاچاق اعضای بدن!
تماس

 

از بيماران سرطاني حمايت كنيم

A new begining
AHHP presents

 

آدرس کوتاه: http://Boplo.ir/:132

parse_url یا باحالی یک تابع
۲۸ تير ۱۳۸۹ ساعت ۰۶:۵۷

پی اچ پی
تابع نگو هلو بگو

در برنامه نويسي وب، گاهي لازم داريم که يک URL رو پردازش کنيم. مثلا از يه URL طولاني، domainاش رو بگيريم يا فقط آدرس صفحه اش رو بدست بياريم يا کوئريش رو بخونيم. براي چنين کارايي برنامه نويسهاي ناآگاه سراغ Regular Expression ميرند در حاليکه PHP عزيز براي اين کار تابع داره که با هلويي هرچه تمامتر حتي fragment يا hash آدرس رو هم ميده.

تابع parse_url در حالت استاندارد يک URL ميگيره و آرايه اي حاوي اجزاي آدرس ميده شامل اين قسمتها:

  • scheme: همون http يا https يا ftp و غيره
  • host: دامنه اصلي مثل Boplo.ir
  • port: پورت اگر باشه
  • user: همون username اگر باشه
  • pass: رمز يا password اگر ست شده باشه
  • path: مسير آدرس بعد از دامين
  • query: کوئري يعني کاراکترهاي بعد از علامت "?"
  • fragment: يا hash يا کاراکترهايي که بعد از علامت "#" ميان

براي نمونه همون مثالي که خود PHP مطرح کرده:

$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
/**
 *	Output:
 *	Array
 *	(
 *		[scheme] => http
 *		[host] => hostname
 *		[user] => username
 *		[pass] => password
 *		[path] => /path
 *		[query] => arg=value
 *		[fragment] => anchor
 *	)
 */
نکته مهم اين تابع اينه وقتي بجاي URL چرنديات تحويلش بديم، مقدار FALSE برميگردونه که ما بايد چک کنيم ولي بخاطر اينکه بيخود وقتش رو گرفتيم، يک خطاي E_WARNING هم صادر ميکنه که اگر نمايش اين دسته خطاها فعال باشه، خطا ميگيرم که مي تونيم اين مشکل رو با @ حل کنيم:
if( $url = @parse_url("chetoty googooli?") ) {
	echo "Host: " . $url['host'];
} else {
	echo "Invalid URL entered!";
}

از نسخه 5.1.2 به اين تابع يک پارامتر دوم اضافه شده که ميشه باهاش بجاي اينکه آرايه بگيريم، فقط بخش مورد نظر رو بصورت String بگيريم. مثلا اگر ميخوايم فقط کوئري آدرس رو بگيريم پارامتر دوم رو برابر PHP_URL_QUERY قرار ميديم. نمونه:

$url = "http://boplo.ir/?loveBoplo=absolutely&loveAmirHossein=dige_poroo_nasho
echo parse_url($url, PHP_URL_QUERY);
/**
 * 	Output:
 * 	loveBoplo=absolutely&loveAmirHossein=dige_poroo_nasho
 */

واسه اينکه موضوع کامل بشه، وقتي به کوئري يک تابع نياز داريم، معمولا اينکه مقدار هر کليد در اون کوئري چيه به درد ميخوره. پردازش کوئري کار خيلي ساده ايه ولي براي همون کار ساده ي چند خطي هم تابعي وجود داره به نام parse_str. مثلا براي پردازش کوئري مثال قبل، اينجوري لذت ميبريم:

$url = "http://boplo.ir/?loveBoplo=absolutely&loveAmirHossein=dige_poroo_nasho
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $array);
print_r($array);
/**
 *	Output:
 *	Array
 *	(
 *		[loveBoplo] => absolutely
 *		[loveAmirHossein] => dige_poroo_nasho
 *	)
 */

 

از PHP لذت ببريم.

 

تو چی فکر می کنی؟


حسن : اوه پسر! من مدت‌ها رو این قضیه مشکل داشتم! این قدر هم جستجو کردم ولی به نتیجه نرسیدم تا از RegEx استفاده کردم.
دستت درد نکنه.
(1 سال و 6 ماه و 23 روز و 5 ساعت و 12 دقیقه پیش)

حسین : عالی مثل همیشه امیرجان !
خیلی جالب بود ، ممنون
(1 سال و 6 ماه و 21 روز و 10 ساعت و 3 دقیقه پیش)

علی : ممنون از تو که اینقدر جالب می نویسی.
مرادیان-بردسکن
(1 سال و 1 ماه و 2 روز و 3 ساعت و 44 دقیقه پیش)

علی : سلام

من یه سئوالی داشتم اونم اینه که چطوری میشه url یه صفحه ای رو بدست آورد؟
(1 سال و 10 روز و 11 ساعت و 9 دقیقه پیش)

salam : karet 20 e
(3 ماه و 26 روز و 18 ساعت و 51 دقیقه پیش)

 

me

امیرحسینم. اسمم رو دوست دارم، خودم رو دوست دارم. تهران زندگی می کنم. فارغ التحصیل مهندسی صنایع هستم. برنامه‌نویسی و طراحی وب می کنم. در واقع Web Developer محسوب میشم. برنامه نویسی و وقت گذرونی با وب تنها کاریه که خسته ام نمی کنه.
آدم خیلی سردی هستم، اینو دور و وری هام میگن. ولی به نظر خودم سرد نیستم در واقع گرمای خودم رو کم بروز می دم! آدما رو اغلب دوست دارم غیر از اون مواقعی که اونا من رو نادیده میگیرن!

این سایت رو بعد از کلی اینور اونور دوباره راه انداختم تا هرچی دوست دارم توش بنویسم، چه کسی بخونه چه نخونه.
خلاصه اینجا خونه منه،

به خونه امیرحسین خوش اومدی...

MODx | Template World