1

我正在网站上制作各种乐队的歌词,我猜很像 Lyrics.com。我现在拥有的是一个页面,该页面与数据库中的乐队名称、歌曲名称和文本本身相呼应。我想对此进行适当的分类。

以“The Beatles”的“Strawberry Fields Forever”为例。

我想把它归类为“B”,就像“Beatles”一样。并且在Example.com/b/名单上每个以字母 B 开头的乐队。我的问题:

  • 乐队的名字是披头士,但应该去掉“The”。我该怎么做?在数据库中创建两列,这authorauthour-clean是很多工作。

另外,我目前的网址是: example.com/lyrics.php?id=1 。我希望这看起来像example.com/b/beatles/strawberry-fields-forever。从谷歌搜索我了解到这可以用 .htacces 来完成?我的数据库现在是否为此正确设计?这就是 ATM 的样子:

(该死,不能发布图片——这里是纯文本)

id (int10)
title (varchar255)
author (varchar255)
lyrics (text)

我在想我需要另一列,例如category,对于这个例子,值b(如披头士乐队)更容易列出所有以 B 开头的乐队,并确保 htaccess 的事情是可能的?

4

3 回答 3

4
  • 乐队的名字是披头士,但应该去掉“The”。我该怎么做?在数据库中创建两列,这authorauthour-clean是很多工作。

虽然这似乎是更多的初始工作,但您会发现它是一种从长远来看需要较少工作的解决方案。

如果您要通过应该如何搜索作者来预先编制索引,那么在返回结果时,您可以让 SQL 为您完成所有工作。

在提取数据时,将数据正确存储在数据库中总是优于进行复杂处理(一遍又一遍)。空间比处理能力便宜很多,更不用说从长远来看这最终会快多少。

于 2012-04-14T18:04:36.707 回答
2

有几种方法可以实现第一个目标。最好的方法是像 Trendee 建议的 preg_replace 或者甚至将字符串分解为数组,然后搜索您想要替换的单词的实例。数组版本很酷,因为您可以轻松地将内容随机播放。

至于第二个目标,您正在查看 mod_rewrite。发生的事情是,当您访问您的网址 example.com/b/beatles/strawberry-fields-forever 时,您将有一条重写规则,上面写着“将每个 / 视为查询字符串的一部分”,而您定义每一个是什么。所以实际上,您的网址是:

?category=b&band=beatles&song=strawberry-fields-forever。

有很多关于如何做到这一点的例子

于 2012-04-14T17:04:04.890 回答
0

我认为这可能有用。 http://php.net/manual/en/function.preg-replace.php

于 2012-04-14T16:56:42.657 回答