使用 php 或 javascript 或 regex,是否有一种快速(希望是单行)从上一个(引荐来源) URL 获取查询字符串的方法?
例子,
用户在
www.sample.com?one
然后点击链接进入
www.sample.com?two
从第二页...我想知道前面的查询字符串“一”。
使用 php 或 javascript 或 regex,是否有一种快速(希望是单行)从上一个(引荐来源) URL 获取查询字符串的方法?
例子,
用户在
www.sample.com?one
然后点击链接进入
www.sample.com?two
从第二页...我想知道前面的查询字符串“一”。
这也许?
var qs = document.referrer.split('?')[1] || '';
好像是比赛:)
var r = document.referrer,
indexOfQm = r.indexOf('?'),
len = r.length;
/(?:[^?]+)\??(.*)/.exec(r)[1];
r.split('?').shift().pop() || '';
r.slice(indexOfQm === -1? len : indexOfQm - len + 1);
r.substring(indexOfQm === -1? len : indexOfQm + 1);
r.replace(/^.+?(?:\?(.*)|$)/, '$1');
r.split('').slice(indexOfQm + 1).join('');
[].reduce.call(r, function (res, c) {
if (res.found) res.qs += c;
else if (c === '?') res.found = true;
return res;
}, { found: false, qs: '' }).qs;
您需要在服务器端获取引荐来源网址字符串。
如果使用 PHP,就这么简单:
$referrer = $_SERVER['HTTP_REFERER'];
然后将字符串拆分为“?” 登录到一个数组,并且您在数组索引 1 处拥有查询字符串
这是每行一个单行:
document.referrer.split("?").slice(1).join("?")
document.referrer.substring(document.referrer.indexOf("?") + 1)
/(?:\?(.+))?/.exec(document.referrer)[1]
referrer
但是,这不是一件值得依赖的好事情;人们可以并且确实将它们关闭。(我愿意。)考虑使用 cookie 或本地存储。