1

使用 php 或 javascript 或 regex,是否有一种快速(希望是单行)从上一个(引荐来源) URL 获取查询字符串的方法?

例子,

用户在

www.sample.com?one

然后点击链接进入

www.sample.com?two

从第二页...我想知道前面的查询字符串“一”。

4

3 回答 3

3

这也许?

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;
于 2013-11-10T00:26:02.580 回答
2

您需要在服务器端获取引荐来源网址字符串。

如果使用 PHP,就这么简单:

$referrer = $_SERVER['HTTP_REFERER'];

然后将字符串拆分为“?” 登录到一个数组,并且您在数组索引 1 处拥有查询字符串

于 2013-11-10T00:26:39.707 回答
2

这是每行一个单行:

document.referrer.split("?").slice(1).join("?")
document.referrer.substring(document.referrer.indexOf("?") + 1)
/(?:\?(.+))?/.exec(document.referrer)[1]

referrer但是,这不是一件值得依赖的好事情;人们可以并且确实将它们关闭。(我愿意。)考虑使用 cookie 或本地存储。

于 2013-11-10T00:26:57.417 回答