J'essaie de créer un bookmarklet qui utilise l'URL actuelle de l'utilisateur, en quelque sorte comme le bookmarklet Tinyurl qui utilise ce code JavaScript donc j'ai copié la même chose et a fait P > http://www.google.ca/webhp?um=1
5 Réponses :
javascript:void(location.href='http://mywebsite.com/create.php?url='+encodeURIComponent(location.href)) You need to escape the characters.
Essayez
Alors, que voulez-vous, juste l'URL sans la chaîne de requête?
$url = explode('?',$_GET['url']); $url = $url[0];
URL a un format spécifié. Cette partie après vous devez échapper Pour échapper à la chaîne dans JavaScript Utilisez Il remplacera des caractères comme ? Code> ou pour être plus exactement entre
? Code> et
# code> si existe, s'appelle String de requête . Il contient une liste des paires de la valeur clé - un nom de variable,
= code> caractère et la valeur. Les variables sont séparées par
& code>:
emplacement.href code> comme il peut em> contient une certaine caractères tels que
? code>,
& code> ou
# code>. p>
Encodégonent () code>
fonction comme suit: p> et code> dans
% 26 code>. Cette séquence de caractères n'est pas traitée comme un séparateur variable, il sera donc attaché à la valeur d'une variable. P> P>
Merci, semble assez facile. Quelle est la bonne façon de décoder cela dans PHP alors?
Vous n'êtes pas obligé. $ _ Obtenez ['URL'] CODE> contiendra la valeur appropriée, c'est-à-dire.
http: //..../.....html? abc = def & ghi = 123 code>. Cependant, PHP vient tout comme JavaScript avec plusieurs fonctions d'URL s'échappant:
UrlenCode () code>
.
@Miked je sais que c'est un peu vieux, mais je pense que vous devriez accepter cette réponse :)
Pour passer l'URL en $ _GET paramètre comme ceci: alors vous devez utiliser la fonction de codage: p> après cela, Vous devez décoder le paramètre avec: p> tel, vous pouvez transmettre le lien correct sous forme de paramètre. p> p>
Comment est-ce que vous êtes dépouillé
& hl = fr & Safe = off code> mais pas
um = 1 code>?
@NULLUSEREXCEPTION: Je suppose que cela est dû à ce
? Code> existe déjà dans l'URL et le navigateur / serveur pourraient traiter le second comme un caractère "normal".