рдЙрджреНрджреЗрд╢реНрдп:- рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ URL рдпреБрдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреА рд╣реИред рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкреВрд░реНрдг рдФрд░ рд╕рд╛рдкреЗрдХреНрд╖ URL рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрди рджреЛрдиреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдФрд░ рд╕рд┐рдВрдХ рдореЗрдВ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ "http: //" рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реНрдг рд▓рд┐рдВрдХ рдХрд╛ "рдЧрд▓рдд" рдкреНрд░рд╛рд░реВрдк рд╣реИред рдЖрдЧреЗ "рдЧрд▓рдд" рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рд╣рдо рдЕрдкреВрд░реНрдг рдкреВрд░реНрдг рд▓рд┐рдВрдХ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред
- "RF" рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг: | site.ru/page.php | /page.php | site.ru/page.php |
---|
рдпреЛрдЬрдирд╛ | http | | |
---|
рдореЗрдЬрд╝рдмрд╛рди | site.ru | | site.ru |
---|
рдкрде | page.php | page.php | page.php |
---|
рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл 1 рдФрд░ 2 рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
Zend\Uri\Http
рд╡рд░реНрдЧ рд╣рдореЗрдВ рдЗрд╕ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕
parse($uri)
getHost()
parse($uri)
,
getHost()
,
getPath()
, рдЖрджрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди! "
site.ru/page.php
" ("
http://
" рдХреЗ рдмрд┐рдирд╛) рдЬреИрд╕реЗ URL рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп,
getHost()
рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛ рджреЗрдЧрд╛, рдФрд░
getPath()
"
site.ru/page.php
" рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдБ рдореБрдЭреЗ рдЬреЛ рднреА рдЪрд╛рд╣рд┐рдП рдЙрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рддрд░реАрдХрд╛ рд╣реИ ред рдкреВрд░реНрдг рдЕрдкреВрд░реНрдг рд▓рд┐рдВрдХ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд▓рд┐рдВрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ (рд░рд┐рд╢реНрддреЗрджрд╛рд░ рд▓рд┐рдВрдХ рдХрд╛ рдкреНрд░рдХрд╛рд░)ред рдЖрдк рдЗрд╕рдХреЗ TDL (рдкреНрд░рдердо-рд╕реНрддрд░реАрдп рдбреЛрдореЗрди) рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдПрдХ рдкреВрд░реНрдг рдЕрдкреВрд░реНрдг рд▓рд┐рдВрдХ рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рдбреЛрдореЗрди рдореМрдЬреВрдж рд╣реИ, рддреЛ рд▓рд┐рдВрдХ рдХреЛ рдкреВрд░реНрдг рдЕрдкреВрд░реНрдг рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
public function myParse($url){ $Http = new Http($url); if($Http->isValidRelative()){
рдХреЛрдб рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
- рд╣рдо
Zend\Validator\Hostname
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ $validIdns
рдореЗрдВ рд▓рд┐рдВрдХ рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдХреЗ рдбреЛрдореЗрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ - рд╣рдо
getHost()
рд╡рд┐рдзрд┐ рдореЗрдВ $decode = true;
рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ $decode = true;
рдореЗрдЬрдмрд╛рди рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред Zend\Uri\Http
рд╡рд░реНрдЧ рдХреА getHost()
рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд╣реАрдВ рдорд╛рдирддреА рд╣реИ рдпрд╛ рдХреБрдЫ рднреА рдбрд┐рдХреЛрдб рдирд╣реАрдВ рдХрд░рддреА рд╣реИ! рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? .. рдиреАрдЪреЗ рдкрдврд╝реЗрдВред
рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рдЕрдиреБрдЪреНрдЫреЗрдж 3 рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рд░реВрд╕реА рд╕рдВрдШ рдХреЗ IDN рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, ZF2 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ IDN рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдХрд░рдиреА рд╣реЛрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬрд┐рд╕ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдПрдиреНрдХреЛрдб рдФрд░ рдбрд┐рдХреЛрдб рдХрд░рдХреЗ url рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░
Zend\Uri\Http
рдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред
namespace Application\Other; use Zend\Uri\Http as ZendHttp; use Application\Model\IdnaConvert; class Http extends ZendHttp { public function setHost($host){ if($host){ $idn = new IdnaConvert(); $host = $idn->encode($host); } return parent::setHost($host); } public function getHost($decode=false) { if($decode && $this->host){ $idn = new IdnaConvert(); return $idn->decode($this->host); } return parent::getHost(); } }
рддрджрдиреБрд╕рд╛рд░, рд╣рдорд╛рд░реЗ
myParse()
рд╡рд┐рдзрд┐ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд
Http
рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ URL рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп, RF рдбреЛрдореЗрди рдХреЛ рдПрдирдХреЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛; рдФрд░ рдЬрдм рдЖрдк
getHost($decode)
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд┐рдзрд┐ рдХреЛ рджрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдпрд╛ рдПрдХ рдбрд┐рдХреЛрдб рдХрд┐рдП рдЧрдП рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
PS рдЙрдкрд░реЛрдХреНрдд рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рд░рд╛рдп рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЛрд╕реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рд╣реИ рдЬреЛ ZF2 рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рд╣реИрдВред рдПрдХ рдФрд░ рдХрд╛рд░рдг - рдореБрдЭреЗ рдЗрд╕ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рд╢рд╛рдпрдж рдЖрдк рд╕реЗ рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреВрдВрдЧрд╛, рд╢рд╛рдпрдж рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕рдХреНрд╖рдо рд╡рд┐рдХрд▓реНрдкред