質問

私は読み込むテキストファイルを持っています:

9123 Bellvue Court
5931 Walnut Creek rd.
Andrew
Bailey
Chris
Drew
Earl
Fred
Gerald
Henry
Ida
Jake
Koman
Larry
Manny
Nomar
Omar
Perry
Quest
Raphael
State
Telleman
Uruvian
Vixan
Whales
Xavier
Yellow
Zebra

私は何をする必要があることは、私はそう... A-Zリストを作成する必要がありますされます:

# A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

あなたが手紙をクリックしたとき、それは私が、私は#記号をクリックした場合の数字で始まるAと単語だけをクリックした場合のみ言葉がAさんで始まると、テーブルが表示されます。

私はこれを達成するために、正規表現を使用して考えていたが、私は27本の異なるページを作成する必要はありません。だから、URLの末尾に文字を呼び出す方法はありますか?これを行うだろう何かを作るような。

http://mywebsite/directory.php?letter=A
役に立ちましたか?

解決

非常に単純なアプローチます:

テキストファイルを読み込みます:

$inputfile = file('words.txt');

次に、入力($letter = $_GET['letter'])を消毒した後、あなたは正規表現を構築することができます:

$regex = '/^'.$letter.'/i';

と表示したい行をフィルタリングます:

$result = preg_grep($regex, $inputfile);

残りの部分は、単にその後、素敵なHTML(または任意の出力をしなければならない)を出力する問題です。

<時間>

に注意してください:ページが頻繁に読み込まれると、それはデータベースに保存されたファイルを持ってはるかに高速です。負荷が将来のある時点での問題であるべき場合にも、キャッシュメカニズムに見てみる必要があります。

<時間>

編集:言及するのを忘れてしまった:#の作業を取得するには、次のように沿って行を追加する必要があります:

if ($letter == '#') $letter = '[0-9]';

再び作業正規表現を取得します。

他のヒント

はいます。

あなたが使用して並べ替えに何を決定するために、その変数にアクセスすることができます。

$letter = $_GET["letter"]
$arrayCount = preg_match('/^'.$letter."./", $textFileContents, $matches);

のようなものが動作するはずです。

あなただけのファイルのいくつかの名前を持っていない限り、

それは怒っていると思います。

あなたがの場合を除き、

のひどくダイナミックなど各時間/日、あなたの中央のファイルから26個のテキストファイルをキャッシュするためのcronを伝える

でなければなりません

A.HTMなど

その日は私をしたら、

、私は、これは自分のサイトが振る舞うだろうかであることを理解することが私のユーザーに教育を受けています。

(A-Zは、約10の異なるアプリケーションのコンテンツから作成される)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top