2016-07-28 9 views
-1

Ich habe eine URL und es ist keine Zeichenfolge. Seine in der Adressleiste des BrowsersGet Parameter von URL mit PHP oder jQuery/Javascript

http://localhost/sample/?post_id2#access_key=1654040333 

Wie kann ich access_key Parameter, der mit # beginnt?

Ich habe versucht, $_SERVER['HTTP_HOST'] und $_SERVER['REQUEST_URI'] und $_SERVER['QUERY_STRING'] aber in Vene zu verwenden.

Kann mir jemand helfen?

+2

Mit 'parse_url' Parsen? –

+0

Wenn es in der URL ist, verwenden Sie den superglobalen $ _GET: $ _GET ['post_id']; –

+0

Die access_key kann nicht, weil es vom Browser interpretiert wird, um zu diesem bestimmten HTML-Element durch die ID –

Antwort

1

Versuchen Sie die URL durch Javascript

alert(window.location.hash); 
2

post_id2 # access_key = 1654040333

access_key ist nicht regelmäßige Abfrage-Parameter Sie heißt $_GET Verwendung erhalten würde. Es wird der Verweis auf die Webseitenanker verwendet (per Design von Browsern, heutzutage aber auch von JS-Frameworks usw.). Sie sind jedoch nicht vollständig verloren, da es parse_url() Funktion gibt, die dies für Sie analysieren kann. Also:

$url = 'http://localhost/sample/?post_id2#access_key=1654040333'; 
var_dump(parse_url($url)); 

würden Sie die folgende Array zurück:

array(5) { 
    ["scheme"]=> 
    string(4) "http" 
    ["host"]=> 
    string(9) "localhost" 
    ["path"]=> 
    string(8) "/sample/" 
    ["query"]=> 
    string(8) "post_id2" 
    ["fragment"]=> 
    string(21) "access_key=1654040333" 
} 

so Ihre access_key in fragment Schlüssel sein wird, so dass Sie es weiter verarbeiten kann den Wert zu erhalten:

$parse_url_result = parse_url($_SERVER['QUERY_STRING']); 
if (array_key_exists('fragment', $parse_url_result)) { 
    $tmp = explode('=', $parse_url_result['fragment']); 
    $access_key = $tmp[1]; 
} 
+0

Sie haben die 'URL' in der Zeichenfolge erstellt. Wie kann ich es als String machen, da es in der Adressleiste eines Browsers ist – Omer

+0

Verwenden Sie '$ _SERVER ['QUERY_STRING']'. Siehe http://www.php.net/manual/en/reserved.variables.server.php. Überprüfen Sie auch die bearbeitete Antwort –

0

Sie können parse_url verwenden, um die erforderlichen Ergebnisse zu erhalten.

$url = "http://localhost/sample/?post_id2#access_key=1654040333"; 
var_dump(parse_url($url, PHP_URL_FRAGMENT));