Die Angabe einer URL als GET-parameter in Javascript
Ich versuche, ein bookmarklet, verwendet der Benutzer die aktuelle URL, wie bei der tinyURL-bookmarklet, das mit dieser javascript-code
javascript:void(location.href='http://tinyurl.com/create.php?url='+location.href)
Also kopiert habe ich das gleiche gemacht und
javascript:void(location.href='http://mywebsite.com/create.php?url='+location.href)
Dann nutze ich:
$url=$_GET['url'];
abrufen. Das problem ist, wenn ich auf eine url, die bereits einige Stil-info in der url, es verwirrt alles.
Beispiel, Wenn ich auf:
http://www.google.ca/webhp?um=1&hl=en&safe=off
Den '_GET' code-sets $url
http://www.google.ca/webhp?um=1
Also ich finde die info in der google-URL ist, vermasselt alle meine URL-parsing, ich Stelle mir vor ich mache etwas sehr falsch oder hat jemand eine sehr elegante Lösung für dieses. Was soll ich tun? bitte helfen Sie
- Wie kommen Sie ausgezogen
&hl=en&safe=off
aber nichtum=1
? - Ich vermute, das ist, weil der
?
bereits in der URL und browser/ - server möglicherweise behandeln, die zweite als die "normalen" char.
Du musst angemeldet sein, um einen Kommentar abzugeben.
URL hat ein spezielles format. Der Teil nach
?
, oder genau zwischen?
und#
falls vorhanden, aufgerufen wird query-string. Es enthält eine Liste von Schlüssel-Wert-Paare - ein Variablenname=
Charakter und Wert. Variablen sind getrennt durch&
:Sollten Sie entkommen
location.href
wie es kann enthält einige Sonderzeichen wie?
,&
oder#
.Entkommen string in JavaScript verwenden
alsterrunde()
Funktion etwa so:Wird, ersetzt Zeichen wie
&
in%26
. Diese Sequenz von Zeichen, die nicht behandelt wird als Trennzeichen für Variablen, so wird es angebracht sein, die als Wert einer Variablen.$_GET['url']
enthält den richtigen Wert hat, dh.http://..../...html?abc=def&ghi=123
. Aber PHP kommt ebenso wie JavaScript funktioniert mit mehreren Funktionen für URL-escaping:urlencode()
.Versuchen
Müssen Sie escape-Zeichen.
also, was sind Sie wollen, nur die url ohne query-string?
Übergeben url im $_GET-parameter wie diese:
dann müssen Sie mit encode-Funktion:
danach, Sie brauchen, um zu decodieren, die parameter mit:
solchen Art und Weise, die Sie übergeben können, der richtige link als parameter.