我有一个URL字符串是这样的:如何将URL(包含变量)作为单个var发送?
http://www.google.com/cse?cx=017840637368510444960:ny1lmky7r-0&client=google-csbe&output=xml_no_dtd&q=simon+g
我需要从AJAX发送URL以便PHP脚本作为一个字符串变量。
虽然我遇到了麻烦,因为它由于url字符串本身中的变量而不断分裂成多个变量。合理?我怎样才能把它作为一个单一的字符串?
谢谢!
我有一个URL字符串是这样的:如何将URL(包含变量)作为单个var发送?
http://www.google.com/cse?cx=017840637368510444960:ny1lmky7r-0&client=google-csbe&output=xml_no_dtd&q=simon+g
我需要从AJAX发送URL以便PHP脚本作为一个字符串变量。
虽然我遇到了麻烦,因为它由于url字符串本身中的变量而不断分裂成多个变量。合理?我怎样才能把它作为一个单一的字符串?
谢谢!
你需要对其进行编码。
在PHP:urlencode()
$str = urlencode('http://....');
在Javascript中:encodeURIComponent方法
str = encodeURIComponent('http://...');
escape()
或encodeURIComponent()
也,你可以尝试加密(如BASE64)
base64不加密 – 2009-05-22 14:11:56
正确,不是加密。而...嘿..第三方base64上的JS编码URL ...为什么? – Jet 2009-05-22 16:27:04
我猜你一定要逃逸()在JavaScript这样
逃生(“CX = 017840637368510444960:ny1lmky7r -0 & client = google-csbe & output = xml_no_dtd & q = simon + g“ )
编辑:我刚刚搜索并发现encodeURIComponent()是最好的解决方案。
逃生(),是encodeURI()和encodeURIComponent方法的一个很好的比较见http://xkr.us/articles/javascript/encode-compare/()
<?php
// In your URL-emitter page
$decoded_url = "http://www.google.com/cse?cx=017840637368510444960:ny1lmky7r-0&client=google-csbe&output=xml_no_dtd&q=simon+g";
$link_addr = "/index.php?encodedurl=".urlencode($decoded_url);
echo '<a href="'.$link_addr.'">Click me</a>';
// in your URL-reciever page (here the same page)
if(array_key_exists("encodedurl",$_GET)) {
echo 'decoded url='.urldecode($_GET["encodedurl"]);
}
为什么downvote? – Jab 2009-05-22 14:46:10