Gli utenti possono inserire URL utilizzando un modulo HTML sul mio sito Web, in modo che possano inserire qualcosa come questo: http://www.example.com?test=123&random=abc, può essere qualsiasi cosa. Ho bisogno di estrarre il valore di un determinato parametro di query, in questo caso 'test' (il valore 123). C'è un modo per fare questo?Come estrarre i parametri di query da una stringa URL in PHP?
risposta
È possibile utilizzare parse_url
e parse_str
come questo:
$query = parse_url('http://www.example.com?test=123&random=abc', PHP_URL_QUERY);
parse_str($query, $params);
$test = $params['test'];
parse_url
permette di dividere un URL in diverse parti (schema, host, il percorso, interrogare, ecc); qui lo usiamo per ottenere solo la query (test=123&random=abc
). Quindi possiamo analizzare la query con parse_str
.
Sembra che parse_url lanci un errore PHP quando si usa alcuni URL, controlla questo commento su php.net: http://www.php.net/manual/en/function.parse-url.php#96433 –
Sì, sembra che non funzioni sugli URL senza un ' componente host'. Funzionerà con URL validi come HTTP. – arnaud576875
Quindi, c'è un altro modo per farlo? –
Avevo bisogno di controllare un url che fosse relativo per il nostro sistema quindi non potevo usare parse_str. Per chi ne ha bisogno:
$urlParts = null;
preg_match_all("~[\?&]([^&]+)=([^&]+)~", $url, $urlParts);
solo per curiosità, ma come mai il tuo sistema non supporta una funzione nativa di PHP? – Vallentin
@Vallentin - 'parse_str()' è stato introdotto in PHP 4 ... forse (ma è molto improbabile) aveva una versione precedente di PHP –
il nome dell'host è facoltativo ma è richiesto almeno il punto interrogativo al l'inizio della stringa di parametri:
$inputString = '?test=123&random=abc&usersList[]=1&usersList[]=2' ;
parse_str (parse_url ($inputString , PHP_URL_QUERY) , $params);
print_r ($params);
- 1. Python-Requests, estrae i parametri url da una stringa
- 2. php per estrarre una stringa da virgolette
- 3. query MySQL per estrarre i domini da URL
- 4. Ottieni parametri url da una stringa in .NET
- 5. Estrai URL da una stringa utilizzando PHP
- 6. Come ottenere i parametri URL in Rails?
- 7. Parametri query URL Tornado
- 8. Come rimuovo una query da un url?
- 9. estrarre l'indirizzo e-mail da stringa - php
- 10. Estrarre tutti gli URL all'interno di una stringa in Ruby
- 11. parametri Convalida url in php
- 12. Quanto è pericolosa una query mongo che viene alimentata direttamente da una stringa di query URL?
- 13. Come visualizzare i parametri in una query?
- 14. stringa di query in url $ risorsa
- 15. Come si analizzano i parametri di una query URL, in Javascript?
- 16. Come passare% in una stringa di query URL?
- 17. parametri PHP passando URL
- 18. Come estrarre gli URL da una pagina HTML in Python
- 19. Ottieni parametri stringa URL?
- 20. Come estrarre migliori parametri da un CrossValidatorModel
- 21. Come codificare i parametri URL in QT?
- 22. Come estrarre una sottostringa da una stringa in PHP fino a quando raggiunge un determinato carattere?
- 23. Come codificare i parametri URL?
- 24. Estrarre un file da una stringa ZIP
- 25. Come estrarre i dati da una risposta SOAP in Java?
- 26. Trova url da stringa con php
- 27. Parse parte query da url
- 28. Estrarre una stringa tra due parole da una stringa
- 29. espressioni regolari per estrarre i numeri da una stringa
- 30. Crea URL da una stringa
possibile duplicato del [espressioni regolari per analizzare la stringa di query] (http://stackoverflow.com/questions/4499538/regular-expression-to-parse-query-string) – Gordon
Infatti, un duplicato, tuttavia la soluzione parse_url porta a un nuovo problema, guarda il mio commento all'utente576875 di seguito. –
potresti estrarre la stringa partendo da '?' Con 'strstr' o' explode' qualcosa e poi passare a 'parse_str' – Gordon