PHP URL karma bölümünü okuyabilir miyim?

7 Cevap php

Bir URL varsayarsak:

  www.mysite.com?val=1#part2

PHP GET dizi kullanarak istek değişkenlerini "val1" okuyabilirsiniz.

Hash değeri "part2" de okunabilir mi? ya bu sadece tarayıcı ve JavaScript kadar olduğunu.

7 Cevap

Asıl sorun tarayıcı bile fragmanı kısmı ile bir istek göndermek olmaz olmasıdır. Fragman kısım tarayıcıda orada çözümlenir. Bu yüzden JavaScript aracılığıyla ulaşılabilir bulunuyor.

Neyse, parse_url() kullanarak, fragman kısmı dahil bit, bir URL ayrıştırmak olabilir, ama açıkçası böyle değil.

Basit test, erişen http://localhost:8000/hello?foo=bar#this-is-not-sent-to-server

python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
Serving HTTP on 0.0.0.0 port 8000 ...
localhost - - [02/Jun/2009 12:48:47] code 404, message File not found
localhost - - [02/Jun/2009 12:48:47] "GET /hello?foo=bar HTTP/1.1" 404 -

Sunucu # apandisine olmadan isteği alır - karma etiketinden sonra bir şey sadece istemci üzerinde bir çapa arama olduğunu.

Bir örnek olarak, kullanarak javascript ile URL içinde kullanılan çapa adını bulabilirsiniz:

<script>alert(window.location.hash);</script>

PHP parse_url () işlevi zaten fragmanı dahil gerekli URL dize varsa çalışmaz (http://codepad.org/BDqjtXix) yapabilirsiniz:

<?
echo parse_url("http://foo?bar#fizzbuzz",PHP_URL_FRAGMENT);
?>

Output: fizzbuzz

Istemci-çünkü bu sadece ama ben PHP fragmanı bilgi alır sanmıyorum.

Bu Javascript alınabilir olduğunu - window.location.hash gibi. Oradan örneğin Ajax ile sunucuya göndermek, ya da kodlamak ve ardından sunucu tarafına geçirilebilir URL'lerin içine koyabilirsiniz.

Karma sunucuya gönderilir, böylece hiçbir asla.

Evet bu doğru, sunucu çapa parçası almaz. Ancak çerezleri kullanarak bir çözüm vardır. Bunu burada bulabilirsiniz: http://www.stoimen.com/blog/2009/04/15/read-the-anchor-part-of-the-url-with-php/

Ben karma değeri yalnızca istemci tarafında kullanılan düşünüyorum, bu yüzden php ile bunu elde edemez.

Eğer olsa php javascript ile yönlendirme olabilir.

Cevabı hayır.

Karma başlıca amacı, bir yer imi tanımladığınız sayfanın belirli bir kısmına gidin etmektir. örneğin Bu Kısımda ilerleyin sayfayı yükler zaman.

Tarama bu hat kadar içerik sınırının altında nasıl takip bağlı olarak, sayfanın ilk görünen içeriği olduğunu gibi kaydırma yapacaktır.

Evet javascript onu acces ve daha sonra basit bir ajax arama sihir yapacak