1

私は、Lyrics.com のように、あらゆる種類のバンドの歌詞を掲載したウェブサイトに取り組んでいます。私が今持っているのは、バンドの名前、曲のタイトル、およびデータベースからのテキスト自体をエコーするページです。きちんと分類したいと思います。

たとえば、ビートルズの「ストロベリー フィールズ フォーエバー」。

これは「ビートルズ」のように「B」に分類したいと思います。そして、Example.com/b/B で始まるすべてのバンドのリストに載っています。私の質問は次のとおりです。

  • バンドの名前はビートルズですが、「The」は削除する必要があります。どうすればいいですか?データベースに 2 つの列を作成authorするとauthour-clean、多くの作業が必要になります。

また、現在の私の URL は次のとおり 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」は削除する必要があります。どうすればいいですか?データベースに 2 つの列を作成authorするとauthour-clean、多くの作業が必要になります。

これはより初期の作業のように見えるかもしれませんが、長期的には作業が少なくて済むソリューションであることがわかります。

作成者の検索方法によって事前にインデックスを作成する場合は、結果を返す際にすべての作業を SQL に任せることができます。

データベースにデータを適切に格納することは、データを引き出すときに複雑な処理を (何度も) 行うよりも常に優先されます。スペースは処理能力よりもはるかに安価です。言うまでもなく、これが長期的にどれだけ高速になるかは言うまでもありません。

于 2012-04-14T18:04:36.707 に答える
2

目標1を達成する方法はいくつかあります。最善の方法は、Trendeeが提案するようなpreg_replaceか、文字列を配列に分割してから、置換する単語のインスタンスを検索することです。配列バージョンは、ものを簡単にシャッフルできるのでかっこいいです。

2番目の目標については、mod_rewriteを見ています。何が起こっているのかというと、URL example.com/b/beatles/新たにアクセスすると、「各/をクエリ文字列の一部であるかのように扱う」という書き換えルールがあり、それぞれが何であるかを定義します。したがって、実際には、URLは次のとおりです。

?category = b&band = beatles&song =ストロベリー・フィールズ-永遠に。

これを行う方法についてはたくさんの例があります

于 2012-04-14T17:04:04.890 に答える
0

これは使えそうです。 http://php.net/manual/en/function.preg-replace.php

于 2012-04-14T16:56:42.657 に答える