purl
v1.0.0
Purl เป็นไลบรารีการจัดการ URL เชิงวัตถุอย่างง่ายสำหรับ PHP 7.2+
วิธีการติดตั้งที่แนะนำคือผ่านผู้แต่ง:
composer require jwage/purl
การสร้างอินสแตนซ์ URL เป็นเรื่องง่าย คุณสามารถระบุ URL ที่คุณต้องการ หรือใช้ URL ปัจจุบัน:
use Purl Url ;
$ url = new Url ( ' http://jwage.com ' );
$ currentUrl = Url:: fromCurrent ();
คุณสามารถโยงวิธีการเข้าด้วยกันได้หลังจากสร้าง Url
ดังนี้:
$ url = ( new Url ( ' http://jwage.com ' ))
-> set ( ' scheme ' , ' https ' )
-> set ( ' port ' , ' 443 ' )
-> set ( ' user ' , ' jwage ' )
-> set ( ' pass ' , ' password ' )
-> set ( ' path ' , ' about/me ' )
-> set ( ' query ' , ' param1=value1¶m2=value2 ' )
-> set ( ' fragment ' , ' about/me?param1=value1¶m2=value2 ' );
echo $ url -> getUrl (); // https://jwage:[email protected]:443/about/me?param1=value1¶m2=value2#about/me?param1=value1¶m2=value2
// $url->path becomes instanceof PurlPath
// $url->query becomes instanceof PurlQuery
// $url->fragment becomes instanceof PurlFragment
$ url = new Url ( ' http://jwage.com ' );
// add path segments one at a time
$ url -> path -> add ( ' about ' )-> add ( ' me ' );
// set the path data from a string
$ url -> path = ' about/me/another_segment ' ; // $url->path becomes instanceof PurlPath
// get the path segments
print_r ( $ url -> path -> getData ()); // array('about', 'me', 'another_segment')
$ url = new Url ( ' http://jwage.com ' );
$ url -> query -> set ( ' param1 ' , ' value1 ' );
$ url -> query -> set ( ' param2 ' , ' value2 ' );
echo $ url -> query ; // param1=value1¶m2=value2
echo $ url ; // http://jwage.com?param1=value1¶m2=value2
// set the query data from an array
$ url -> query -> setData ([
' param1 ' => ' value1 ' ,
' param2 ' => ' value2 '
]);
// set the query data from a string
$ url -> query = ' param1=value1¶m2=value2 ' ; // $url->query becomes instanceof PurlQuery
print_r ( $ url -> query -> getData ()); //array('param1' => 'value1', 'param2' => 'value2')
$ url = new Url ( ' http://jwage.com ' );
$ url -> fragment = ' about/me?param1=value1¶m2=value2 ' ; // $url->fragment becomes instanceof PurlFragment
Fragment สร้างขึ้นจากเส้นทางและแบบสอบถาม และอยู่หลังเครื่องหมายแฮช (#)
echo $ url -> fragment -> path ; // about/me
echo $ url -> fragment -> query ; // param1=value1¶m2=value2
echo $ url ; // http://jwage.com#about/me?param1=value1¶m2=value2
คุณสามารถแยก URL ออกจากสตริงข้อความได้อย่างง่ายดายโดยใช้วิธี extract
:
$ string = ' some text http://google.com http://jwage.com ' ;
$ urls = Url:: extract ( $ string );
echo $ urls [ 0 ]; // http://google.com/
echo $ urls [ 1 ]; // http://jwage.com/
คุณสามารถรวมสอง URL เข้าด้วยกันได้อย่างง่ายดายโดยใช้ Purl:
$ url = new Url ( ' http://jwage.com/about?param=value#fragment ' );
$ url -> join ( ' http://about.me/jwage ' );
echo $ url ; // http://about.me/jwage?param=value#fragment
หรือหากคุณมีวัตถุ Url
อื่นอยู่แล้ว:
$ url1 = new Url ( ' http://jwage.com/about?param=value#fragment ' );
$ url2 = new Url ( ' http://about.me/jwage ' );
$ url1 -> join ( $ url2 );
echo $ url1 ; // http://about.me/jwage?param=value#fragment