Question

J'ai un fichier texte qui se lit comme suit:

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

Ce que je dois faire est que je dois créer une liste A-Z ... donc:

# 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

et lorsque vous cliquez sur la lettre qu'elle apportera une table avec seulement les mots commençant par A si je clique sur A et que les mots commençant par des nombres si je clique sur le signe #.

Je pensais à l'aide d'une expression régulière pour accomplir cela, mais je ne veux pas créer 27 pages différentes. Alors, est-il un moyen d'appeler la lettre à la fin de l'URL? comme la création de quelque chose qui va faire

http://mywebsite/directory.php?letter=A
Était-ce utile?

La solution

Une approche très simple:

Lire dans le fichier texte:

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

Ensuite, après l'entrée désinfectante ($letter = $_GET['letter']), vous pouvez construire une expression rationnelle:

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

et filtrer les lignes que vous souhaitez afficher:

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

le reste est alors simplement une question de sortie HTML agréable (ou quelle que soit la sortie est)


Gardez à l'esprit: Lorsque les pages sont souvent lus, il est beaucoup plus rapide d'avoir le fichier stocké dans une base de données. Vous devriez aussi jeter un coup d'oeil dans les mécanismes de mise en cache si la charge doit être un problème à un moment donné dans l'avenir


Edit: oublié de mentionner: Pour le travail de #, vous devez ajouter une ligne le long de ce qui suit:

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

pour obtenir le regex fonctionne à nouveau.

Autres conseils

Oui.

Vous pouvez accéder à cette variable pour déterminer ce qu'il faut trier en utilisant

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

Quelque chose comme ça devrait fonctionner

Ce serait fou à moins que vous ne disposez que de quelques noms dans le fichier.

Sauf si vous doivent être tell terriblement dynamique Cron à cache 26 fichiers texte à partir de votre fichier central chaque heure / jour etc

a.htm etc

Une fois par jour me fait, j'instruit mes utilisateurs à comprendre que c'est de savoir comment leur site se comporterait.

(A-Z est créé à partir du contenu de 10 applications différentes)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top