2014-12-23 2 views
0

아이디어에 약간의 문제가 있습니다.PHP 고급 정규식 분할

저는 모든 컴퓨팅 장치의 온라인 포럼에서 채팅 기능을 사용합니다. 나는 또한 그것을 모빌리티로 사용한다. 이것은 형식화, 입력 등의 약간의 문제를 일으킨다. 나는 모든 채팅을 중계 계정에서 내 자신의 모바일 친화적 인 사이트로 릴레이 할 생각을 가지고있다.

메시지를 읽는 방법을 알고 있지만 아직 메시지를 보내지 않았습니다. 출력 방법은 문제입니다.

채팅에서 아약스를 사용하므로 내 컴퓨터에서 보내는 패킷을 스니핑했습니다. ~~||~~1419344231,1,kondaxdesign,Could somebody send a quick message for me__C__ please?,,10248~~||~~1419344237,1,tom.bridges,its a iso and a vm what more do we need to know?,,10880~~||~~

해당 문자열 출력이 채팅 다음과 같습니다 : http://i.stack.imgur.com/j7CM6.png

나는 불행하게도에 대한 많은 지식이없는이 유사 http://server05.ips-chat-service.com/get.php?room=xxxx&user=xxxx&access_key=xxxx

페이지 출력 뭔가 : 나는 다음 URL을 찾을 수 있었다 정규식, 또는 이것을 나눌 다른 함수. 아무도 나에게 도움을 줄 수 없겠습니까 1). 이름, 2). 채팅 데이터 및 3). 타임 스탬프? ~~||~~[timestamp],1,[name],[data],,[some integer]~~||~~

건배 :

당신이 볼 수 있듯이, 문자열은 같은 것입니다.

사람이 채팅을 떠나는 문자열 출력을 통해 읽은 후,이 전송됩니다 : 로그의 ~~||~~1419344521,2,wegface,TIMEOUT,2_10828,0~~||~~

시작은 첫 번째 ~~||~~ 전에 1,224442 시작합니다.

+0

당신이 우리에게 무엇을 각 세그먼트 수단을 말해 줄 수, 문자열을 구문 분석하는 정규 표현식을 사용하지 않을까요? 또는 각 세그먼트를 분할하여 사용하는 스크립트를 작성해야합니까? –

+0

현재 많은 정보는 없지만이 정보를 조사하고 있습니다. 나는 데이터를 가져 와서 각각의'~~ || ~~'로 나눈 다음 각 콤마로 나누는 이론을 가지고있었습니다. – Profile

+0

@ ᵈˑᵈˑ 예를 들어 보았습니다. 죄송합니다. 코드 형식에 넣는 것을 잊어 버렸습니다. 업데이트를 확인하십시오. – Profile

답변

1

먼저 각 레코드를 explode 개 입력하고 str_getcsv을 사용하여 원하는대로 문자열을 읽고 파싱하십시오. 다음은 출력에서 ​​형식을 지정하지 않고이를 수행하는 스크립트입니다. OP에서 명명 된대로 변수의 이름을 지정했습니다.

나는 더 나은 기능을 사용할 (위 링크)와 같이

$string = "~~||~~1419344231,1,kondaxdesign,Could somebody send a quick message for me__C__ please?,,10248~~||~~1419344237,1,tom.bridges,its a iso and a vm what more do we need to know?,,10880~~||~~"; 

//Split so we have each chat record to loop around 
foreach(explode("~~||~~", $string) as $segments) { 
    //Read the CSV properly 
    $chat = str_getcsv($segments); 
    if(count($chat) <> 6) { continue; } //Skip any that don't have all the data 
    $timestamp = $chat[0]; 
    $name = $chat[2]; 
    $data = $chat[3]; 
    $some_integer = $chat[5]; 

    echo $name .' said - '. $data .'<br />'; 
} 
+0

사실 데이터 분할없이 극도로 유사한 접근법을 만들었습니다. 대단히 고마워요, 이것은 큰 효과가있는 것처럼 보입니다. – Profile

+0

신난다, 안녕하세요. –