0

我在一个网站上用 php 和 mysql 组合了一个非常简单的广告服务器。该网站目前有 4 或 5 个包含大量动态内容的静态页面,因此 URL 如下所示: index.php?pid=1content.php?spec=2

我想做的是在我的广告表中添加一个字段,以跟踪将要显示广告的页面。

我应该将包含广告的 URL 存储为逗号分隔值的列表吗?

检索此变量后,将值分隔到数组中的最佳方法是什么?

拆分字符串的最佳方法是什么,以便我可以拆分页面名称$_GET名称和变量(如使用上面的示例在'index,pid,1'或'content,spec,2'中。)??

附加信息:例如,医生.php 的结构如下:

  • doctors.php 博士专业列表
  • doctors.php?spec=#具有特定专业的医生列表
  • doctors.php?pid=#一位特定医生的信息

我有几十个专科,几百个医生。我希望能够在特定页面/网址上投放广告,例如doctors.php?pid=7

但我也希望能够基于所有具有 ID 为 6 的专业的医生投放广告。这可能是 60 多页,因此单独的表格行没有意义. 如果我需要更改广告上的链接,我不想更改 60 次或搜索它。

4

4 回答 4

2

不要存储为 CSV。

为每个广告/网址组合添加单独的数据库行。

然后检索内容将是微不足道的。

于 2012-09-20T17:00:05.120 回答
0

这是我认为会起作用的...

我的广告表将包含三个变量(a、b、c)

如果我在 上放置广告doctors.php?spec=12,我将存储以下内容:

  • a = 'doctors';
  • b = 'spec';
  • c = '12';

如果广告要显示在所有专业页面上,我会存储:

  • a = 'doctors';
  • b = 'spec';
  • c = NULL;

如果某物为 NULL,它将简单地指示所有集合。这似乎是一个优雅的解决方案,如果可行,我将发布代码。

于 2012-09-20T17:42:54.553 回答
0

在简单文件中每行存储一个 URls。比你可以使用 php 函数“file”来读取这个文件作为一个数组。

对于 url 拆分使用http://php.net/parse_url函数

于 2012-09-20T17:02:07.253 回答
-2
$url = "index.php?pid=1";
$pos = strpos($url, "?");

if ($pos != false) {
  $pieces1 = explode("?", $url);
  $pieces2 = explode("=", $pieces1[1]);
  $array = array($pieces1[0], $pieces2[0], $pieces2[1]);
}else{
  $array = array($url, '', '');
}

print_r($array);

如果您希望此代码适用于 url 中的多个变量,则需要改进此代码,例如:index.php?v=hello&t=world

另外,我没有测试这段代码。我只是写了它没有检查功能等。

于 2012-09-20T17:07:48.717 回答