문제

읽는 텍스트 파일이 있습니다.

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

내가해야 할 일은 AZ 목록을 만들어야한다는 것입니다 ... 그래서 :

# 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를 만들 수 있습니다 :

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

표시하려는 행을 필터링하십시오.

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

나머지는 단순히 멋진 HTML을 출력하는 문제입니다 (또는 출력이 무엇이든)


명심하십시오 : 페이지를 자주 읽을 때 파일을 데이터베이스에 저장하는 것이 훨씬 빠릅니다. 또한 부하가 나중에 문제가된다면 캐싱 메커니즘을 살펴 봐야합니다.


편집 : 언급을 잊어 버렸습니다 # 작업하면 다음을 따라 라인을 추가해야합니다.

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

Regex가 다시 작동하게합니다.

다른 팁

예.

해당 변수에 액세스하여 사용하여 정렬 할 내용을 결정할 수 있습니다.

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

그런 것이 작동해야합니다

파일에 이름이 몇 개만 없다면 화가 났을 것입니다.

너가 아니라면 해야 끔찍한 동적 인 Cron to Cache to Cache에 26 개의 텍스트 파일마다 시간/일/일 등록

A.htm 등

하루에 한 번, 나는 사용자에게 이것이 그들의 사이트가 어떻게 행동 할 것인지 이해하도록 교육했다.

(AZ는 약 10 개의 다른 응용 프로그램의 콘텐츠로 생성되었습니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top