我有读取文本文件:

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的开始。如果我点击了一个,只有单词,数字开头,如果我按#号。

我想用正则表达式来做到这一点的,但我不希望创建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);

类似的东西应该工作

这会是疯狂的,除非你只需要在文件中几个名字。

除非你的必须的非常动态告诉cron来从中央文件缓存26个文本文件的每一个小时/天等。

这个a.htm等

每天一次做我的,我的教育我的用户了解,这是他们的地盘会如何表现。

(由约10个不同的应用程序的内容创建的A-Z)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top