2012-07-16 3 views
0

제 문제는 로그 파일 내에서 검색 할 수있는 검색 기능을 만드는 것입니다.입력 패턴에서 PHP를 사용하여 로그 파일 검색

node-id > command 
-Date-other descriptions 
Output starts 
Output ends 
node-id > another command 

지금 내가 가지고있는 문제가 하나 개의 로그 파일에서 하나 개의 명령의 출력을 차단하고 비교를 위해 다른 로그 파일의 출력과 비교하는 것입니다

패턴이 같은 것입니다. 나는 내용을 검색하고 그것을 더 많은 비교를 위해 배열이나 파일에 저장하는 방법을 찾을 수 없다.

+0

지금까지 시도한 것은 무엇입니까? 당신이 시도한 것을 가지고 어떤 오류나 문제가 있습니까? 이 문제를 해결하기위한 아이디어와 코드를 제공하십시오. – Fluffeh

답변

0

파일에서 내용을 잘라낼 수 없으며 파일을 변경하고 다시 저장할 수 있습니다 (파일 시스템에 따라 파일 시스템을 직접 조작 할 수도 있지만이 질문을하면 PHP에서)

을 낮은 수준의 파일 시스템 경험이없는이 될 법한 :

$data = file_get_contents($fileToCutFrom); 
// ... modify data here, e.g. if it's xml you might wanna use SimpleXML or DOMDocument or some other xml parser, like ganon (https://code.google.com/p/ganon/) - the later one is pretty good if you know you might have incomplete/invalid xml 
file_put_contents($fileToCutFrom, $modifiedData); 


// and now append to the other file 
file_put_contents($fileToAppendTo, $dataToAppend, FILE_APPEND); 

개 이상의 파일에서이 작업을 수행 할 경우 심각한 경쟁 상태에 들어갈 수도 있지만 알고 file_get_contents는 원자가 아니며 file_put_contents도 아니므로 실행할 줄이 여러 개인 문제가 있습니다. 따라서 코드가 한 번에 여러 번 실행될 수있는 경우 모든 "절단"작업을 수행하고 소켓을 여는 스크립트 인스턴스를 사용하고 다른 스크립트는 필요한 파일을 해당 파일에 보냅니다.

또한 새로운 데이터가 들어올 때마다 계속해서하고 싶다면 inotify (Linux) 또는 해당 시스템의 해당 기능을보고 싶을 수 있습니다 (osx에는 파일 알림 서비스도 있지만 잘 모릅니다.) windows에 관하여)

뭔가 다른 것이 필요한 경우 질문에 정보를 추가하고 싶을 수 있습니다.

관련 문제