Kullanıcılar web sitemde bir HTML formu kullanarak URL'leri girebilir, böylece böyle bir şeye girebilirler: http://www.example.com?test=123&random=abc, herhangi bir şey olabilir. Belirli bir sorgu parametresinin değerini, bu durumda 'test' (123 değeri) almam gerekir. Bunu yapmanın bir yolu var mı?PHP'de bir URL dizisinden sorgu parametrelerini nasıl alırım?
cevap
Böyle parse_url
ve parse_str
kullanabilirsiniz:
$query = parse_url('http://www.example.com?test=123&random=abc', PHP_URL_QUERY);
parse_str($query, $params);
$test = $params['test'];
parse_url
farklı bölgelerinde (şema, konak, yol, sorguda, vs) bir URL split sağlar; Burada sadece sorguyu almak için kullanıyoruz (test=123&random=abc
). Sonra sorguyu parse_str
ile ayrıştırabiliriz.
Parse_url kullanırken PHP hatası atar gibi görünüyor Belli URL'ler, bu yorumu php.net adresinden öğrenebilirsiniz: http://www.php.net/manual/en/function.parse-url.php#96433 –
Evet, öyle görünüyor ki, ana bilgisayar bileşeni. Bu geçerli HTTP benzeri URL'lerle çalışacaktır. – arnaud576875
Peki, bunu yapmak için başka bir yolu var mı? –
Sistemimiz için göreli olan bir url'yi kontrol etmem gerektiğinden, parse_str kullanamadım. Herkes kimin ihtiyacı:
$urlParts = null;
preg_match_all("~[\?&]([^&]+)=([^&]+)~", $url, $urlParts);
sadece meraktan yoksun, ama sisteminiz yerli bir PHP fonksiyonunu nasıl desteklemiyor? – Vallentin
@Vallentin - 'parse_str()' PHP 4'te tanıtıldı ... belki de (ama bu çok doğaçlamadır) PHP'nin daha eski bir sürümü vardı –
hostname isteğe bağlıdır ancak parametre string başlamak en azından soru işareti gereklidir:
$inputString = '?test=123&random=abc&usersList[]=1&usersList[]=2' ;
parse_str (parse_url ($inputString , PHP_URL_QUERY) , $params);
print_r ($params);
- 1. Yeni url için geçerli GET isteğindeki sorgu parametrelerini değiştirin
- 2. Express URL parametrelerini göremiyor
- 3. Geçirilecek URL parametrelerini vermek
- 4. URL parametrelerini iframe'e geçirme
- 5. Django'nun {% url%} şablon etiketi ile sorgu parametrelerini iletmek mümkün mü?
- 6. ZF2: Denetleyicideki URL parametrelerini alın
- 7. Owin sorgu dizesi parametrelerini alır
- 8. Jersey JaxRS'deki tüm sorgu parametrelerini nasıl alabilirim?
- 9. Ben url parametrelerini değiştirmek istiyorum
- 10. URL parametrelerini yönetme (Python Flask)
- 11. RewriteCond'ın herhangi bir sırada sorgu dizesi parametrelerini maç için
- 12. Jersey dinlenme istemcisi sorgu parametrelerini eklemiyor
- 13. ASP.NET web sitesinde sorgu dizesi parametrelerini nasıl şifreleyebilirim?
- 14. .htaccess RewriteRule GET URL parametrelerini korumak için
- 15. Yesod rotalarında sorgu parametrelerini belirlemek mümkün mü?
- 16. URL sorgu dizelerini eklenecek bir işleve geçirme
- 17. Sorgu önbelleğini kullanmadan bir Spring Data JPA sorgu yönteminin sonuçlarını nasıl önbelleğe alırım?
- 18. Url şablon parametrelerini istek gövdesi ile açısal olarak nasıl gönderemiyorum?
- 19. Formda url sluguna sorgu dizgisi nasıl dönüştürebilirim?
- 20. Polimer, sayfa.js'deki URL parametrelerini polimer elemanına nasıl alırsınız?
- 21. Android'de bir kişinin tüm ayrıntılarını nasıl alırım?
- 22. Bir URL'de sorgu dizesi parametrelerini ayırmanın doğru yolu nedir?
- 23. Adından nasıl bir seçici alırım?
- 24. SQL sorgusunun sonuçlarını nasıl alırım?
- 25. Parse.com dizisinden resim çekin
- 26. WebLogic'te sorgu parametrelerini çözmek için karakter kümesini yapılandırma
- 27. nasıl bir şişe görünümünden url parametreleri almak çalışıyorum
- 28. KDoc belgelerini nasıl alırım?
- 29. Öğeleri bir Perl dizisinden rasgele nasıl alabilirim?
- 30. Bayt dizisinden bir IntStream nasıl yapabilirim?
([sorgu dizesini ayrıştırmak için Düzenli İfade] olası yinelenen http://stackoverflow.com/questions/4499538/regular-expression-to-parse-query-string) – Gordon
Aslında, bir yinelenen, ancak parse_url çözümü yeni bir soruna yol açıyor, yorumumu aşağıdan kullanıcı576875'e bakın. –
'strstr' veya' explode' birşey ile başlayan dizgeyi ayıklayabilir ve sonra 'parse_str' – Gordon