Frage

Ich habe eine Textdatei, die lautet:

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

Was ich tun muß, ist, ich brauche einen A-Z-Eintrag erstellen ... so:

# 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

und wenn Sie auf den Buchstaben klicken, wird es einen Tisch bringen, mit nur Wörter mit A fängt an, wenn ich A geklickt und nur die Wörter mit Zahlen beginnen, wenn ich das Zeichen # geklickt hat.

Ich dachte, einen regulären Ausdruck zu verwenden, dies zu erreichen, aber ich will nicht 27 verschiedene Seiten erstellen. So ist es eine Möglichkeit, den Brief am Ende der URL zu nennen? wie etwas zu schaffen, die dies tun

http://mywebsite/directory.php?letter=A
War es hilfreich?

Lösung

Ein sehr einfacher Ansatz:

Lesen Sie in der Textdatei:

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

Dann, nach dem Eingang Hygienisierung ($letter = $_GET['letter']), können Sie einen regulären Ausdruck erstellen:

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

und filtern Sie die Zeilen, die Sie wollen zeigen:

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

ist der Rest dann einfach eine Frage der netten HTML ausgibt (oder was auch immer der Ausgang wird sein)


Beachten Sie: Wenn die Seiten häufig gelesen werden, ist es viel schneller ist die Datei in einer Datenbank gespeichert zu haben. Sie sollten auch einen Blick in Caching-Mechanismen nehmen, wenn Last ein Problem zu einem bestimmten Zeitpunkt in der Zukunft sein solle


Edit: vergaß zu erwähnen: die # Funktion zu erhalten, müssen Sie eine Linie entlang der folgenden hinzuzufügen:

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

die Regex wieder zu arbeiten.

Andere Tipps

Ja.

Sie können diese Variable zugreifen, was zu bestimmen, sortieren, indem Sie

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

So etwas sollte funktionieren

Das wäre verrückt, wenn Sie nur ein paar Namen in der Datei haben.

Wenn Sie sein müssen schrecklich dynamische Cron sagen zwischenzuspeichern 26 Text-Dateien von Ihrer zentralen Datei pro Stunde / Tag etc

a.htm etc

Einmal täglich tut mir, ich meine Benutzer erzogen zu verstehen, dass es sich dabei, wie sie ihre Website verhalten würde.

(A-Z von etwa 10 verschiedenen Anwendungen Content erstellt wird)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top