什么是在URL中的查询字符串中发送多个变量的最佳方法

时间:2010-06-15 18:47:45

标签: php string url variables

我有一个客户想要创建一个包含产品代码的链接,以便他的客户只显示那些显示的产品页面,试图提高关联网站的转化率。

我的问题是在单个网址中发送这些多种产品的最佳方法

例如:

http://www.mydomain.co.uk/bespoke-list.php?catNo=234-324-232-343

显然,该网站会从字符串中获取代码并显示它们......

我们将使用PHP!

提前致谢。

3 个答案:

答案 0 :(得分:2)

您当然可以使用-作为分隔符发送您描述的内容。查询字符串变量存储在PHP中的$_GET数组中,因此您的示例数字可以像这样访问:

$ids = $_GET['catNo'];
$ids = explode('-', $ids);
foreach($ids as $id) {
  echo "<p>$id</p>"; //Do something with $id here.
}

另一种方法是将它们直接存储为查询字符串中的数组,如下所示:

http://www.mydomain.co.uk/bespoke-list.php?id[]=234&id[]=324&id[]=232&id[]=343

然后你可以直接获得id而不会爆炸:

$ids = $_GET['id'];
foreach($ids as $id) {
  echo "<p>$id</p>"; //Do something with $id here.
}

但是当我看到它时,第一个肯定是一个更有吸引力的URL。 : - )

答案 1 :(得分:0)

如果您想让网址看起来更好,可以使用.htaccess文件。

答案 2 :(得分:0)

我会使用每个产品“ catNo - ”的前缀构造查询字符串,如下所示:

<强> catNo-1 = 234&安培;的 catNo-2 = 324&安培;的 catNo-3 = 232&安培;的 catNo-4 = 343

解析上述查询字符串的php代码:

<?php
$catNoPrefix = "catNo-";
foreach($_GET as $key => $value){
    if("FALSE" != strstr($key, $catNoPrefix )) {
        $idValue = $_GET[$key];
        echo "<p>$idValue</p>"; 
    }
}
?>