2016-06-29 2 views
0

문자열에서 데이터를 추출하고 정보 배열로 구성하는 가장 효율적이고 명확한 방법을 찾고 있습니다. 붙여 넣은 메모 정보를보다 읽기 쉬운 형식으로 변환하는 도구를 만들고 있습니다.문자열에서 데이터를 추출하는 가장 좋은 방법

이름 : JOHN SMITH

서비스 : ICT

관리자 : 존 터너

게시물 제목 : IT가 지원 우리는이 같은 신입 사원에 대한 메모를받는 순간

임원

전체 이름 : 나는 다음과 같은 더 좋은 형식으로 페이지에 텍스트 영역 POST에서 가져온 배열에 모든 정보를 넣고 다음을 표시 할 수 있도록하려는 존 스미스

서비스 지역 : ICT

라인 관리자 : 존 터너

직위 : IT 내가 알고 그쪽으로 오전 책임자

지원 ()과 같은 기능을 사용할 수 있지만이 작업을 수행하는 데 더 좋은 방법이 있는지 알고 싶습니다.

모든 정보를 배열에 저장하여 서버에 게시 된 후 내 웹 페이지로 쉽게 가져갈 수 있습니다.

$Newemployee['Name'] = "John Smith"; 
$Newemployee['Service'] = "ICT"; 
$Newemployee['Manager'] = "John Turner"; 
$Newemployee['Post_title'] = "IT Support Officer"; 

누구나 좋은 의견이 있으면 알려주세요.

+0

아니요, 더 좋은 방법은 없습니다. 우리가하고있는 일을 우리와 함께 나누십시오. 그러면 우리는 당신이 어떤 개선을 할 수 있도록 도울 수 있습니다. –

+0

나중에 쉽게 처리 할 수 ​​있도록 텍스트 영역의 모든 정보 대신 텍스트 상자에이 데이터를 입력하는 것이 좋습니다. – Matt

+0

당신은 이것을 위해'explode()'를 사용할 수 있다는 것을 알고 있기 때문에 지금까지 시도한 것을 보여줄 수 있습니까? –

답변

0

, 어떤 방법으로 입력을 살균하지 않고 당신이 입력의 형식을 통제 할 수없는 가정, 나는 이것을 달성하기위한 가장 적합한 방법은 당신이 설명대로) ( 폭발 같은 기능을 사용 믿습니다

$newuser = []; 

$input = "NAME: JOHN SMITH 

SERVICE: ICT 

MANAGER: JOHN TURNER 

POST TITLE: IT Support Officer"; 

$lines = array_filter(explode("\n", $input)); 

foreach ($lines as $line) { 

    $parts = explode(": ", $line); 
    $newuser[ucfirst(strtolower(str_replace(" ", "_", $parts[0])))] = $parts[1]; 

} 

편집

는 당신이 기술 한 형식을 반영하기 위해 배열 인덱스를 변경했습니다.

실제 값은 일반적으로 모든 값을 동일한 양식 (소문자)에 저장하고 화면에 인쇄 할 때 해당 값을 적절히 형식 지정하는 것이 좋습니다. 이렇게하면 각 문자열의 형식을 알 필요없이 값을 쉽게 비교할 수 있습니다. 즉, 'ICT'약어를 감지하고 모두 대문자로 표시 할 수 있으며 다른 '서비스'는 약어가 아닐 수 있으므로 단지 자본화하는 것을 선호합니다.

+0

정말입니까? 나는 출력과 함께 PHPFiddle을 가지고있다 :'Array ([NAME] => JOHN SMITH [SERVICE] => ICT [MANAGER] => JOUR TURNER [POST TITLE] => IT 지원 책임자)' –

+0

질문은 ' 문자열에서 데이터를 추출하는 방법 '- 적절한 해결책을 통해 대답했습니다. 그런 다음 데이터를 조작하는 방법 (예 : 대문자 사용)은 다른 질문입니다 –

관련 문제