2016-04-30 1 views
2

Ich versuche, zu überprüfen, ob eine URL eine spezifische Abfrage innerhalb einer URL mit mehreren Parametern hat:Check in PHP, wenn eine bestimmte Abfrage ist in URL

$parts = parse_url('http://my url?queryA=valueA&queryB=valueB&queryC=valueC ....'); 
parse_str($parts['query'], $query); 

Ich habe die unten zu bekommen, den Wert der verwendeten Abfrage;

$query['queryA']//outputs valueA 

Allerdings möchte ich, wenn "queryA" überprüfen, ist in der Tat innerhalb der URL-Abfragen:

echo $parts['query'] // Outputs the full query - queryA=valueA&queryB=valueB&queryC=valueC 

// Trying for 
if($parts['query'] == 'queryA') { 
    // queryA is in the URL 
} 
+0

Google zu überprüfen : "PHP check variable exists" ... [Ergebnis # 1] (http://php.net/manual/en/function.isset.php) - Beispiel # 1 Teil II zeigt Sie, wie Sie dies für Arrays überprüfen. – ash

+1

@ash Das * möglich * dupliziere du sagst (oder denkst) es ist; Bei dieser anderen Frage geht es darum zu überprüfen, ob etwas 'isset()' ist und nicht um eine URL zu analysieren. Kaum ein Duplikat aus meiner Sicht, nur weil die akzeptierte Antwort 'array_key_exists()' 'zwischen beiden Fragen nicht verwandt ist. * Zwei verschiedene Tiere hier *. Plus, diese andere Frage erwähnt nicht einmal 'parse_url()'. Am besten, wenn Sie eine Frage als Duplikat kennzeichnen. ;-) –

+0

@ Fred-ii- Es wird nicht die Verwendung von 'isset' über' array_key_exists' verwendet, das OP versucht festzustellen, ob eine Variable existiert, bevor es benutzt wird - daher zeigt diese Frage wenig Aufwand vom OP zu suchen google und finde die Antwort selbst. Das Duplikat zeigt, wie getestet wird, ob eine Variable existiert - es sind vielleicht nicht 100% die gleichen Wörter, aber es ist sicherlich 100% die gleiche Lösung. – ash

Antwort

4

Verwenden array_key_existsqueryA Schlüssel in $query Array

$parts = parse_url('http://my url?queryA=valueA&queryB=valueB&queryC=valueC'); 
parse_str($parts['query'], $query); 
if (array_key_exists('queryA', $query)) { 
    echo "queryA element is in the array"; 
} 
+1

Dank @Saty Arbeit wie ein Charme .. – BENN1TH

+1

Große Antwort, nicht nach oben-Abstimmung seit dieser Frage gehen sollte geschlossen sein. – ash