کتابخانه URI در کد ایگنایتر - مسیردهی، تغییر و استفاده از URL

کتابخانه URI در کد ایگنایتر - مسیردهی، تغییر و استفاده از URL

کلاس URI

کلاس URI متدهایی را فراهم میکند که به شما در جهت بدست آوردن اطلاعات از رشته URI کمک می کند. اگر شما از مسیریابی URI استفاده می کنید همچنین می توانید اطلاعات در مورد سگمنت های مسیردهی مجدد شده را بدست آورید.
نکته: این کلاس به طور خودکار توسط سیستم مقداردهی می شود و لذا نیازی به انجام دستی آن نیست.

کتابخانه URI در کد ایگنایتر

کلاس مورد استفاده در این بخش کلاس class CI_URI می باشد.

متدهای موجود در کلاس

segment($n[, $no_result = NULL])

پارامترها:

ورودی/خروجی نام پارامتر نوع شرح
ورودی $n (int) int شماره اندیس سگمنت
ورودی no_result$ mixed  در صورت پیدا نشدن سگمنت چه چیزی برگردانده شود.
خروجی   mixed مقدار سگمنت یا در صورت پیدا نشدن آن 

به شما اجازه می دهد تا یک سگمنت خاص را بدست آورید. n شماره سگمنتی است که شما به دنبالش هستید. سگمنت ها از چپ به راست شماره گزاری می شوند. برای مثال اگر URL کامل به شکل زیر باشد:

http://example.com/index.php/news/local/metro/crime_is_up

شماره سگمنت ها به صورت زیر خواهد بود:

1. news
2. local
3. metro
4. crime_is_up

پارامتر اختیاری دوم به طور پیش فرض NULL است و به شما اجازه می دهد مقدار بازگشتی متد در زمانی که سگمنت URI درخواستی پیدا نشود را مشخص کنید. برای مثال، این می توانیم به متد بگوییم عدد 0 را در موقع شکست برگرداند:

$product_id = $this->uri->segment(3, 0);

این کار باعث می شود مجبور به نوشتن همچین کدی نباشیم:

if ($this->uri->segment(3) === FALSE)
{
        $product_id = 0;
}
else
{
        $product_id = $this->uri->segment(3);
}

rsegment($n[, $no_result = NULL])

پارامترها:

 

ورودی/خروجی نام پارامتر نوع شرح
ورودی $n (int) int شماره اندیس سگمنت
ورودی no_result$ mixed  در صورت پیدا نشدن سگمنت چه چیزی برگردانده شود.
خروجی   mixed مقدار سگمنت مسیردهی شده یا در صورت پیدا نشدن ان مقدار


این متد مشابه ()segment است با این تفاوت که به شما اجازه می دهد سگمنت خاصی را از URI مسیردهی مجدد شده در لحظه ای که شما در حال استفاده از ویژگی URI Routing کد ایگنایتر هستید بدست آورید.

slash_segment($n[, $where = 'trailing'])

ورودی/خروجی نام پارامتر نوع شرح
ورودی $n int شماره اندیس سگمنت
ورودی $where mixed علامت / به کجا اضافه شود (ابتدا /انتها)
خروجی   string مقدار سگمنت، اضافه دار شده / پیشوند دار با یک اسلش، یا یک علامت اسلش در صورتی که سگمنت یافت نشود

این متد تقریبا مشابه با متد ()segment است، با این تفاوت که یک علامت اسلش به ابتدا و/یا انتها بر حسب پارامتر دوم اضافه می کندو اگر پارامتر استفاده نشود یک اسلش انتهایی اضافه می شود. مثال:

$this->uri->slash_segment(3);

$this->uri->slash_segment(3, 'leading');

$this->uri->slash_segment(3, 'both');

خروجی ها:

1. segment/

2. /segment

3. /segment/

slash_rsegment($n[, $where = 'trailing'])

پارامترها:

ورودی/خروجی نام پارامتر نوع شرح
ورودی $n  int شماره اندیس سگمنت
ورودی $where mixed علامت / به کجا اضافه شود (ابتدا /انتها)
خروجی   string مقدار سگمنت مسیردهی مجدد شده، اضافه دار شده / پیشوند دار با یک اسلش، یا یک علامت اسلش در صورتی که سگمنت یافت نشود

این متد تقریبا مشابه با متد ()slash_segment است، با این تفاوت که به شما اجاره می دهد اسلش هایی را به یک سگمنت خاص از URI میردهی مجدد شده در هنگامی که در حال استفاده از ویژگی URI Routing کد ایگنایتر هستید اضافه کنید.

uri_to_assoc([$n = 3[, $default = array()]])

ورودی/خروجی نام پارامتر نوع شرح
ورودی $n int شماره اندیس سگمنت
ورودی $default array مقادیر پیش فرض
خروجی   array آرایه ای انجمنی از سگمنت های URI

این متد به شما اجازه می دهد سگمنت های URI را به یک آرایه انجمنی از زوج های کلید/مقدار تبدیل کنید. این URI را در نظر بگیرید:

index.php/user/search/name/joe/location/UK/gender/male

با استفاده از این متد شما این URI‌ را به یک آرایه انجمنی با این الگو تبدیل می کنید:

[array]
(
        'name'          => 'joe'
        'location'      => 'UK'
        'gender'        => 'male'
)

پارامتر اول به شما اجازه می دهد یک offset را مشخص کنید، که به طور پیش فرض ۳ می باشد چون URI به طور معمول شامل یک زوج کنترلر/متد در اولین و دومین سگمنت می باشد. مثال:

$array = $this->uri->uri_to_assoc(3);
echo $array['name'];

پارامتر دوم به شما می گوید نام های پیش فرض کلید ها را مشخص کنید، به طوریکه آرایه بازگشتی همیشه شامل اندیس های مورد انتظار باشد حتی اگر آنها از URI حذف شوند. مثال:

$default = array('name', 'gender', 'location', 'type', 'sort');

$array = $this->uri->uri_to_assoc(3, $default);

اگر URI شامل یک مقدار به طور پیش فرض نباشد یک اندیس آرایه با مقدار NULL به آن نام ست خواهد شد .

در نهایت، اگر یک مقدار مطابق برای یک کلید داده شده یافت نشود (اگر تعداد فرد از سگمنت های URI وجود داشته باشد) مقدار با NULL مشخص خواهد شد.

ruri_to_assoc([$n = 3[, $default = array()]])

پارامترها:

ورودی/خروجی نام پارامتر نوع شرح
ورودی $n int شماره اندیس سگمنت
ورودی $default array مقادیر پیش فرض
خروجی   array  آرایه ای انجمنی از سگگمنت های URI مسیردهی مجدد شده 

این متد مشابه ()uri_to_assoc است با این تفاوت که یک آرایه انجمنی با استفاده URI مسیردهی مجدد شده در زمانی که شما در حال استفاده از ویژگی URI Routing کد ایگنایتر هستید ایجاد می کند.

assoc_to_uri($array)

پارامترها:

ورودی/خروجی نام پارامتر نوع شرح
ورودی $array array آرایه ورودی متشکل از زوج های کلید/مقدار
خروجی   string رشته URI

یک آرایه انجمنی به صورت ورودی میگیرد و یک رشته URI بر حسب آن تولید می کند. کلیدهای آرایه در رشته شامل خواهند بود. مثال:

$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red');

$str = $this->uri->assoc_to_uri($array);

// Produces: product/shoes/size/large/color/red

uri_string()

ورودی/خروجی نوع شرح
خروجی string رشته URI

یک رشته بهمراه URI کامل بر می گرداند. بری مثال، اگر URL کامل شما به صورت زیر باشد:

http://example.com/index.php/news/local/345

متد خروجی زیر را بر می گرداند:

news/local/345

ruri_string()

ورودی/خروجی نوع شرح
خروجی string  رشته URI مسیردهی مجدد شده

این متد شبیه به ()uri_string است با این تفاوت که URI مسیر دهی مجدد شده را در زمانی که در حال استفاده از ویژگی URI Roiting کد ایگنایتر هستیم را بر می گرداند.

total_segments()

ورودی/خروجی نوع شرح
خروجی int تعداد سگمنت های URI

تعداد کل سگمنت ها را بر می گرداند

total_rsegments()

ورودی/خروجی نوع شرح
خروجی int تعداد سگمنت های URI مسیردهی مجدد شده

مشابه متد ()total_segment است با این تفاوت که تعداد کل سگمنت های  URI مسیر دهی مجدد شده را در زمانی که در حال استفاده از ویژگی URI Roiting کد ایگنایتر هستیم را بر می گرداند.

segment_array()

ورودی/خروجی نوع شرح
خروجی array آرایه سگمنت های URI

یک آرایه شامل سگمنت های URI را باز می گرداند. برای مثال:

$segs = $this->uri->segment_array();

foreach ($segs as $segment)
{
        echo $segment;
        echo '<br />';
}

rsegment_array()

ورودی/خروجی نوع شرح
خروجی array آرایه سگمنت های URI مسیردهی مجدد شده

این متد مشابه متد ()segment_array است با این تفاوت که آرایه ای از سگمنت های  URI مسیر دهی مجدد شده را در زمانی که در حال استفاده از ویژگی URI Roiting کد ایگنایتر هستیم را بر می گرداند.