2012-12-08 3 views
0

좋아, 나는 플랫 파일 shoutbox에서 작업하고 있는데 플랫 파일에서 사용자 이름을 가져 와서 변수를 만드는 방법을 사용하여 데이터베이스를 호출하여 사용자가 admin인지 확인하여 shoutbox에서 직접 사용자를 삭제/금지 할 수 있습니다. 텍스트 파일의 특정 부분을 사용하여 값 만들기

<div><i><div class='date'>12/08/2012 18:56 pm&nbsp;&nbsp;</div></i> <div class='groupAdmin'><b>Admin</b></div><b><a href='javascript:;' onclick="shout_insert('@kira423- ')">kira423</a>:</b> hiya :D</div> 

그래서 나는이 경우 kira423있는 사용자 이름을 만들고 이러한 변수를 $shoutname로하고 동일한

kira423 내가 시도 만들고 싶어 플랫 파일의 예를 들어 라인 Google 검색을 사용하고 여기를 둘러 보았지만 답변을 찾을 수 없었기 때문에 여기에서 내 자신의 질문으로이 작업을 수행하는 방법에 대한 통찰력을 얻을 수 있기를 바랍니다.

감사합니다,

키라

답변

1

이 같은 이러한 작업을 위해 preg_match을 사용해야합니다

preg_match_all('|<div class=\'date\'>(?P<date>.*?)&nbsp;.*<a.*>(?P<user>.*)</a>|i', $data, $matches); 
var_dump($matches); 

모든 배열 요소을 통해 Interating :

foreach ($matches['user'] as $key => $user) { 
    var_dump($user); 
} 
+0

내가 위의 예에서 선을했다. 정확히 하나의 라인인지 확인하십시오. –

+0

다른 사용자 이름의 줄이 여러 개 있으면 작동하지 않을 수 있습니까? – kira423

+0

정규식은 한 줄만 사용할 수 있습니다. 도움이된다면'g' 수정자를 추가하거나'preg_match_all'을 사용할 수 있습니다.하지만 한 줄씩 평평한 파일을 읽는 것이 좋습니다. –

1

난 당신이 방금 PHP Parse HTML code (또는 유형 "PHP 구문 분석 HTML"에 설명처럼 (사용하는 간단한 HTML 태그가) HTML로 플랫 파일의 각 줄을 구문 분석해야한다고 생각 Google에서). 그런 다음 배열 등에서 사용자 이름 (kira123)에 액세스 할 수 있습니다.

PS HTML은 표시 할 메시지를 저장할 수있는 가장 좋은 방법은 아닙니다. CSV도 더 좋을 것 같습니다. "kira123; date; some text"일 것입니다. 각 부분을 읽고 액세스하는 것이 더 쉽습니다. 표시 할 때 standar 데코레이터 패턴을 사용하십시오.

관련 문제