URL Helper
ไฟล์ URL Helper มีฟังก์ชันที่จะช่วยเหลือการทำงานกับ URL
เรียกใช้งานผู้ช่วยนี้
ผู้ช่วยตัวนี้จะสามารถถูกโหลดโดยใช้โค้ดดังนี้
$this->load->helper('url');
ฟังก์ชันที่สามารถใช้ได้มีดังนี้
site_url()
ส่งค่า URL สถานที่ตั้งคืนกลับไปโดยขึ้นอยู่กับไฟล์ในปรับแต่งของคุณ (config.php) โดยรวม index.php (หรืออะไรก็ตามที่คุณตั้งค่าสถานที่ตั้งของคุณหรือ index_page ในไฟล์ปรับแต่งของคุณ) จะถูกเพิ่มลงไปใน URL ด้วยเหมือนเป็นส่วนหนึ่งของ URI ที่จะส่งผ่านต่อไปยังฟังก์ชัน
คุณสามารถที่จะใช้ฟังก์ชันนี้เมื่อเวลาคุณต้องการสร้าง URL ภายในแอพพลิเคชั่นของคุณ ดังนั้นหน้าต่างๆของคุณจะสามารถถูกเข้าถึงได้ง่ายเวลามีการเปลี่ยน URL
ส่วนต่างๆของ URL เป็นทางเลือกในการใช้ฟังก์ชันโดยใช้เป็น สตริงหรืออาเรย์ก็ได้ ดังตัวอย่างนี้
echo site_url("news/local/123");
ด้านบนจะได้ผลลัพธ์กลับมาเป็นดังนี้ http://example.com/index.php/news/local/123
และนี้คือตัวอย่างโดยการใช้แบบอาเรย์
$segments = array('news', 'local', '123');
echo site_url($segments);
base_url()
ส่งค่า URL สถานที่ตั้งหลักโดยเจาะจงมาจากไฟล์ปรับแต่งของคุณ (config.php) ตัวอย่างการใช้งาน
echo base_url();
current_url()
ส่งค่า URL แบบสมบูรณ์(รวมส่วนต่างๆของ URL มาหมด) ของหน้าที่กำลังถูกดู
uri_string()
ส่งค่าส่วนใดๆของ URI กลับมาโดยฟังก์ชันนี้ ยกตัวอย่างเช่น ถ้า URL ของคุณเป็นแบบนี้
http://some-site.com/blog/comments/123
ฟังก์ชันนี้จะส่งกลับมาเช่นนี้
blog/comments/123
index_page()
ส่งค่าหน้าที่ตั้ง "index" ตามที่เขียนไว้ในไฟล์ปรับแต่ง ตัวอย่างวิธีใช้
echo index_page();
anchor()
สร้างลิงค์ตามแบบฉบับมาตรฐาน HTML โดยมีค่า URL พื้นฐานอยู่บนเว็บไซค์ของคุณเอง
<a href="http://example.com">Click Here</a>
ฟังก์ชันนี้มีสามพารามิเตอร์ดังนี้
anchor(uri segments, text, attributes)
โดยพารามิเตอร์แรกให้ใส่ส่วนของ URL ที่คุณต้องการโดยเพิ่มไปยัง URL เช่นเดียวกับฟังก์ชัน site_url() ด้านบน ส่วนสามารถที่จะเป็นสตริงหรืออาเรย์ได้
ข้อสังเกตุ: ถ้าคุณสร้างลิงค์ภายในแอพพลิเคชั่นของคุณเองไม่ต้องใส่ URL ฐานที่ตั้ง (http://...) โดยจะถูกเพิ่มอย่างอัตโนมัติจากข้อมูลที่ถูกใส่ไว้ในไฟล์ปรับแต่ง ให้ใส่เฉพาะส่วนของ URI ที่ต้องให้เพิ่มเติมไปใน URL
ส่วนพารามิเตอร์ที่สองคือข้อความที่คุณต้องการจะลิงค์ โดยถ้าปล่อยวาง จะใช้ค่า URL มาใส่แทน
ส่วนพารามิเตอร์ที่สามสามารถใส่คุณสมบัติที่คุณต้องการเพิ่มไปยังลิงค์ได้ คุณสมบัติสามารถเป็นทั้งสตริงหรืออาเรย์แบบความสัมพันธ์
นี้คือตัวอย่างวิธีใช้งานบางส่วน
echo anchor('news/local/123', 'My News');
ถ้าใช้ฟังก์ชันด้านบนจะแสดงผลลัพธ์เป็น <a href="http://example.com/index.php/news/local/123" title="My News">My News</a>
echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
จากด้านบนจะแสดงผลลัพธ์เป็น <a href="http://example.com/index.php/news/local/123" title="The best news!">My News</a>
anchor_popup()
มีลักษณะใกล้เคียงกับฟังก์ชัน anchor() ยกเว้นแต่มันจะเปิด URL ในหน้าต่างใหม่ คุณสามารถกำหนดคุณสมบัติของหน้าต่างที่เปิดได้ด้วย JavaScript จากพารามิเตอร์ที่สามได้ ถ้าพารามิเตอร์ที่สามไม่ได้ถูกตั้งค่ามันจะเปิดหน้าต่างใหม่ตามการตั้งค่าของ Browser ของคุณ (หรือของคนๆที่กดลิงค์) นี้คือตัวอย่างพร้อมกับการกำหนดคุณสมบัติ
$atts = array(
'width' => '800',
'height' => '600',
'scrollbars' => 'yes',
'status' => 'yes',
'resizable' => 'yes',
'screenx' => '0',
'screeny' => '0'
);
echo anchor_popup('news/local/123', 'Click Me!', $atts);
ข้อสังเกตุ: คุณสมบัติต่างๆด้านบนคือฟังก์ชันปกติ ดังนั้นคุณสามารถที่จะเปลี่ยนแปลงเพียงหนึ่งค่าให้แตกต่างจากค่าปกติตามที่ต้องการได้ ถ้าคุณต้องการใช้ค่าปกติคุณเพียงใส่อาเรย์ว่างๆในพารามิเตอร์ที่สามได้เลย
echo anchor_popup('news/local/123', 'Click Me!', array());
mailto()
สร้างลิงค์อีเมล์ตามมาตรฐาน HTML นี้คือตัวอย่างการใช้งาน
echo mailto('me@my-site.com', 'Click Here to Contact Me');
และมีลักษณะเหมือน anchor() ด้านบนทำให้คุณสามารถตั้งค่าคุณสมบัติในพารามิเตอร์ที่สามได้ด้วย
safe_mailto()
เหมือนกับฟังก์ชันด้านบนยกเว้นว่ามันจะเขียนแท็กของ mailto ในลักษณะที่ยุ่งเหยิงโดยใช้เลขลำดับที่ถูกเขียนด้วย JavaScript เพื่อป้องกันที่อยู่อีเมล์ จากการเก็บข้อมูลจากหุ่นยนต์ขยะ (Spam Bot)
auto_link()
เปลี่ยน URL และที่อยู่อีเมล์ที่อยู่ในสตริงเป็นลิงค์อย่างอัตโนมัติ ตัวอย่างวิธีใช้
$string = auto_link($string);
พารามิเตอร์ที่สองกำหนดว่าจะให้แปลงค่าทั้ง URL และอีเมล์หรืออย่างใดอย่างหนึ่ง โดยปกติแล้วจะถูกตั้งค่าเป็นทั้งสองอย่าง ลิงค์อีเมล์ทั้งหมดจะถูกเข้ารหัสจากฟังก์ชัน safe_mailto() ด้านบน
คำสั่งแปลงค่าเฉพาะ URL
$string = auto_link($string, 'url');
คำสั่งแปลงค่าเฉพาะที่อยู่อีเมล์
$string = auto_link($string, 'email');
พารามิเตอร์ที่สามกำหนดว่าลิงค์ที่แสดงในหน้าต่างใหม่รึเปล่า โดยเราสามารถใส่ค่า TRUE(จริง) หรือ FALSE(เท็จ) (ให้ใส่ค่าตรรกะไม่ใช่สตริง)
$string = auto_link($string, 'both', TRUE);
url_title()
นำข้อมูลสตริงมาสร้างสตริง URL ที่เป็นมิตรกับมนุษย์ สิ่งนี้จะเป็นประโยชน์มาก ยกตัวอย่างเช่น ถ้าคุณต้องการให้หัวข้อประกาศในบล็อคของคุณไปอยู่ใน URL ด้วย ยกตัวอย่างเช่น
$title = "What's wrong with CSS?";
$url_title = url_title($title);
// ผลลัพธ์คือ : Whats-wrong-with-CSS
พารามิเตอร์ที่สองเอาไว้กำหนดตัวแบ่งคำ โดยปกติแล้วจะใช้ dash(-) คุณสามารถเลือกใช้ได้ระหว่าง dash(-) หรือ underscore(_)
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore');
// ผลลัพธ์คือ : whats_wrong_with_css
พารามิเตอร์ที่สามนั้นกำหนดว่าบังคับให้เป็นตัวอักษรพิมพ์เล็กหรือไม่ โดยปกติพวกมันจะไม่ถูกบังคับ คุณสามารถเลือกใช้ตรรกะ TRUE/FALSE ได้
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore', TRUE);
// ผลลัพธ์คือ : whats_wrong_with_css
prep_url()
ฟังก์ชันนี้จะเพิ่ม http:// ลงไปในกรณีที่ไม่มีค่านี้ใน URL วิธีใช้คือใส่สตริง URL ลงไปในฟังก์ชันแบบนี้
$url = "example.com";
$url = prep_url($url);
// ผลลัพธ์คือ : http://example.com
redirect()
ฟังก์ชันนี้ทำการ a "เปลี่ยนทิศทางของหัวข้อมูลระบบเครือข่าย(header redirect)" ไปยัง URI หรือ URL ที่กำหนด คล้ายๆฟังก์ชันตัวอื่นในผู้ช่วยนี้ นึ้คือหนึ่งในฟังก์ชันที่ถูกออกแบบเพื่อเปลี่ยนทิศไปยัง URL ภายในเว็บไซต์ของคุณ คุณไม่ต้องใส่ URL ตัวเต็มของคุณ เพียงแต่ใส่ส่วนของ URI ไปยังตัวควบคุม(controller) ของคุณที่ต้องการไป ฟังก์ชันจะสร้าง URL พื้นฐานตามไฟล์ปรับแต่งของคุณ (config.php)
พารามิเตอร์ที่สองจะยอมให้คุณเลือกระหว่างวิธีแบบ "location" (โดยปกติ) หรือวิธีแบบ "refresh" แบบ location นั้นเร็วกว่าแต่บนเครื่อง Windows เซิร์ฟเวอร์บางครั้งมันสามารถทำให้เกิดปัญหาได้ ส่วนพารามิเตอร์ที่สามนั้นคุณสามารถส่ง HTTP Response Code ตามที่กำหนดในมาตรฐานได้ - สิ่งนี้จะถูกใช้สำหรับจุดประสงค์บางอย่าง เช่น สร้างเปลี่ยนทิศทางแบบ 301เพื่อ Search Engine โดยปกติแล้วจะมีค่าเป็น 302 พารามิเตอร์ที่สามนั้นจะสามารถใช้ได้เฉพาะวิธีเปลี่ยนทิศทางแบบ 'location' เท่านั้นและใช้ไม่ได้กับ 'refresh' ตัวอย่างเช่น
if ($logged_in == FALSE)
{
redirect('/login/form/', 'refresh');
}
// with 301 redirect
redirect('/article/13', 'location', 301);
ข้อสังเกตุ: เพื่อให้ฟังก์ชันนี้ทำงานมันจะต้องถูกใช้ก่อนที่ีผลลัพธ์อะไรก็ตามจะถูกส่งไปยัง Browser
ข้อสังเกตุ: สำหรับการควมคุมเรื่องเล็กๆน้อยๆเกี่ยวกับหัวข้อมูลระบบเครือข่าย(header) คุณควรใช้ฟังก์ชัน set_header() ของ Output Library