Pergunta

Eu tenho um arquivo de texto que lê:

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

O que eu preciso fazer é que eu preciso para criar um A-Z listagem ... assim:

# 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 você clica sobre a carta que trará uma tabela com apenas as palavras que começam com um amigo se eu cliquei A e apenas as palavras que começam com números, se eu cliquei o sinal #.

Eu estava pensando em usar uma expressão regular para fazer isso, mas eu não quero criar 27 páginas diferentes. Então, há uma maneira de chamar a letra no final da url? como a criação de algo que vai fazer isso

http://mywebsite/directory.php?letter=A
Foi útil?

Solução

Uma abordagem muito simples:

Leia no arquivo de texto:

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

Em seguida, após saneantes entrada ($letter = $_GET['letter']), você pode construir um regex:

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

e filtrar as linhas que você deseja mostrar:

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

o resto é então simplesmente uma questão de saída agradável HTML (ou qualquer que seja a saída deve ser)


Tenha em mente: Quando as páginas são frequentemente ler, é muito mais rápido para que o arquivo armazenado em um banco de dados. Você também deve ter um olhar para mecanismos de cache se a carga deve ser um problema em algum momento no futuro


Edit: esqueci de mencionar: Para obter o trabalho #, você precisa adicionar uma linha ao longo do seguinte:

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

para obter a regex trabalhar novamente.

Outras dicas

Sim.

Você pode acessar essa variável para determinar o que classificar usando

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

Algo assim deve funcionar

Isso seria louco a menos que você só tem alguns nomes no arquivo.

A menos que você tem que ser terrivelmente dinâmica tell Cron para cache de 26 arquivos de texto do seu arquivo central de cada hora / dia etc

a.htm etc

Uma vez por dia me faz, eu educado meus usuários a entender que é assim que seu site iria se comportar.

(A-Z é criado a partir do conteúdo a cerca de 10 diferentes das aplicações)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top