Bu "taşınabilir" ve "güvenli" için tanımlara bağlıdır.
Ben anladım Bakalım:
1) CLI ilgilenmiyor:
- PHP / CGI söz
- PATH_INFO'yu bir URL bir parçasıdır; betik (genellikle bir tarayıcı tarafından istenen bir HTTP bağlantısı, gelen yani) bir URL'den erişildiğinde nedenle, sadece PATH_INFO tartışmak için mantıklı
2) Tüm işletim sistemi + HTTP sunucusu + PHP birlikte PATH_INFO istiyorum:
- OS, Windows, Linux, vb olabilir
- HTTP sunucusu vb Apache 1, Apache 2, nginx, Lighttpd olabilir
- PHP sürüm 4, 5, 6 ya da herhangi bir sürümü olabilir
Hmmm ... php_info, $ _SERVER dizisinde, yukarıda belirtilen yazılımlar bağlı, sadece belirli koşullar altında yürütülmesine bir komut dosyası PHP tarafından sağlanmaktadır. O her zaman mevcut değildir. Aynı tüm $ _SERVER dizisi için de geçerlidir!
Kısacası: "$_SERVER depends on the server" ... yani taşınabilir bir çözüm sadece bir örnek vermek (... $ _SERVER röle değil: PHP / CGI $ _SERVER değişkenleri kurmak için bir öğretici var kbeezie.com / view / php-öz-yol-nginx /) de nginx HTTP sunucusu
3) Yukarıda belirtilen ne rağmen, biz nasılsa bir dizge olarak the full URL that was requested kullanılabilir varsa, güvenli bir şekilde (aynı zamanda, düzenli ifadeler ve diğer PHP string fonksiyonları uygulayarak ondan PATH_INFO elde etmek mümkün olduğunu vurgulamak gerekir ) geçerli bir tanım olarak giriş dizesi doğrulama.
Yani, biz URL string ... sonra YES, WE ondan PATH_INFO belirlemek için bir taşınabilir ve güvenli bir şekilde VAR olması kaydıyla.
Şimdi, biz iki net ve odaklı uygulama sorunları var:
- URL'yi nasıl elde edilir?
- URL'den PATH_INFO nasıl elde edilir?
Çeşitli olasılıklar arasında, burada olası bir yaklaşımdır:
URL'yi nasıl elde edilir?
1) Her bir HTTP sunucusu + OS + PHP version kombinasyon hakkında derin ve kapsamlı bilgi birikimi ile, kontrol ve $ _SERVER dizisinde (doğrulamak 'PHP_SELF', 'QUERY_STRING', 'SCRIPT_FILENAME', 'PATH_TRANSLATED' den URL elde etmek için her imkanı çalışın , 'SCRIPT_NAME', 'REQUEST_URI', 'PATH_INFO'yu', 'ORIG_PATH_INFO', 'HTTP_HOST', 'DOCUMENT_ROOT' ya da her neyse)
Önceki adım başarısız olursa 2), PHP komut dosyası arka "document.URL" bilgi gönderen bir javascript kodu döndürebilir olun. (Taşınabilirlik sorunu istemci tarafında aktarılır.)
URL'den PATH_INFO nasıl elde edilir?
This code linked here does this.
Bu benim düşünceme ve soruna yaklaşım.
Sen ne düşünüyorsun?