Nwlapcug.com


Come leggere stringhe di Query in PHP

Quando si immette "http://example.com/program.php?first=1 & amp; secondo = 2 & amp; terzo = 3 & quot; in un browser, si esegue lo script PHP "program.php" presso il sito Web "esempio.com" e fornire tre valori di parametro: "prima" è uguale a uno, "secondo" uguale a due e "terzo" uguale a tre. La stringa di query è l'ultima porzione dell'URL che inizia con "prima" e viene automaticamente memorizzata in una matrice globale dal server Web. Quando si esegue uno script PHP da linea di comando, vengono memorizzati i valori che si passa a un'altra matrice globale.

Istruzioni

1

Leggere la stringa di query di accesso l'elemento QUERY_STRING dell'array globale $_SERVERS. Si consideri, ad esempio, l'URL:

http://example.com/Program.php?First=1&Second=2&Third=3

Il seguente codice:

<? php
Program.php
$qs = $ server ['QUERY_STRING'];
echo "Query String:". $qs;
? >

produce il seguente output:

Stringa di query: first = 1 & second = 2 third = 3

2

Analizzare la stringa di query in suoi argomenti discreti utilizzando la funzione di "esplodere" per spezzare la stringa di query a ogni e commerciale. Ad esempio, il codice riportato di seguito:

<? php
Program.php
$result = esplodere ("&", $_SERVER['QUERY_STRING']);
print_r($result);
? >

produce il seguente output:

Matrice () {
[0] = > "first = 1"
[1] = > "secondo = 2"
[2] = > "third = 3"
}

3

Accedere all'elemento "argv" della matrice $_SERVERS a leggere i componenti della stringa di query quando si esegue uno script PHP da linea di comando. Si consideri, ad esempio, il seguente comando:

php program.php first = 1 secondo = 2 third = 3

Il seguente codice:

<? php
Program.php
$qs = $ server ['argv'];
print_r($QS);
? >

produce il seguente output:

Matrice () {
[0] = > "program.php"
[1] = > "first = 1"
[2] = > "secondo = 2"
[3] = > "third = 3"
}

4

Utilizzare la funzione di "far implodere" per creare la stringa di query da riga di comando di input. Ad esempio, la riga di comando:

php program.php first = 1 secondo = 2 third = 3

Quando viene eseguito con il seguente codice:

<? php
Program.php
$qsparts = $ server ['argv'];
unset($QS[0]); rimuovere il nome del programma
$qs = implode ("&", $qsparts);
echo "stringa di Query: $qs";
? >

produce il seguente output:

Stringa di query: first = 1 & second = 2 third = 3

Consigli & Avvertenze

  • Poiché un utente tipico non può eseguire uno script PHP da linea di comando, maggior parte degli script PHP vengono scritti supponendo che lo script viene sempre eseguito da un browser o sempre eseguito dalla riga di comando. Tuttavia, la costante PHP_SAPI per dettagli predefinito è impostato su "cli" quando viene eseguito uno script dalla riga di comando. Per esempio:
  • <? php
  • define ("RIGA_COMANDO", PHP_SAPI per dettagli = = "cli");
  • Se (COMMAND_LINE)
  • $query_string = read_commandLline_qs();
  • altro
  • $query_string = read_url_qs();
  • Function read_command_line_qs() () {
  • $qs = $ server ['argv'];
  • unset($QS[]0]);
  • ritorno implode ('&', $qs);
  • }
  • Function read_url_qs() () {
  • return $ Server [' QUERY_STRING'];
  • ? >
  • Perché i valori dell'array $ server vengono impostati dal server Web basato sulla sua configurazione, non c'è alcuna garanzia che un server Web fornirà uno qualsiasi dei valori nella matrice. Tuttavia, come minimo, maggior parte dei server Web forniscono i valori inclusi nella specifica Common Gateway Interface.