Domanda

Ho un file di testo che recita:

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

Che cosa devo fare è che ho bisogno di creare un elenco A-Z ... così:

# 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

e quando si fa clic sulla lettera si aprirà un tavolo con solo le parole che iniziano con A di se dopo aver cliccato A e solo le parole che iniziano con i numeri se ho cliccato il segno #.

Stavo pensando di usare un'espressione regolare per raggiungere questo obiettivo, ma io non voglio creare 27 pagine diverse. Quindi non v'è un modo per chiamare la lettera alla fine della URL? come la creazione di qualcosa che farà questo

http://mywebsite/directory.php?letter=A
È stato utile?

Soluzione

Un approccio molto semplice:

Leggi nel file di testo:

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

Poi, dopo l'ingresso di sanificazione ($letter = $_GET['letter']), si può costruire una regex:

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

e filtrare le righe che si desidera visualizzare:

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

il resto è quindi semplicemente una questione di emettere bello HTML (o qualunque sia l'uscita deve essere)


Ricordate: Quando le pagine sono spesso leggere, è molto più veloce per avere il file memorizzato in un database. Si dovrebbe anche dare un'occhiata in meccanismi di caching se il carico dovrebbe essere un problema in qualche momento nel futuro


Modifica: dimenticato di dire: Per ottenere il funzionamento #, è necessario aggiungere una linea lungo il seguente:

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

per ottenere l'espressione regolare lavorare di nuovo.

Altri suggerimenti

Sì.

È possibile accedere a tale variabile per determinare ciò che per ordinare al sistema utilizzando

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

Qualcosa del genere dovrebbe funzionare

Sarebbe folle se non avete solo pochi nomi nel file.

A meno che deve essere terribilmente dinamica dire a Cron per memorizzare nella cache 26 file di testo dal file centrale ogni ora / giorno etc

a.htm etc

Una volta al giorno mi fa, ho educato i miei utenti a capire che questo è come il loro sito si sarebbe comportato.

(A-Z è stato creato dal contenuto di circa 10 applicazioni diverse)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top