2014-04-11 1 views
0

발표자 정보가 포함 된 쿼리에서 데이터를 가져 왔습니다. 다음과 같은 포맷 :parse_ini_file을 사용하여 ini를 필요한 형식으로 배열로 변환 - 원하는 출력을 얻지 못함

홍길동, 심리학, 특수 주립 대학

신원 미상, 정치학, 특수 대학 (각 발표자 :

[Doe, John undefined] 
middle_name = E. 
department = Psychology 
institution = Special State University 
city = Anywhere 
state = Texas 
country = USA 
office_phone = 123-456-7891 
cell_phone = 123-789-4578 
email_address = [email protected] 
website = www.johndoe.edu 

[Doe, Jane undefined] 
middle_name = 
department = Political Science 
institution = Special University 
city = anywhere 
state = Indiana 
country = USA 
office_phone = 123-456-7891 
cell_phone = 568-456-4589 
email_address = [email protected] 
website = 

내가 정말 이런 식으로 표시해야 나는이 시도

별도의 행)에 :

$cleanpresenters = parse_ini_file($data['presenters'])을;

하고 오류 로그에이를 생성합니다

parse_ini_file([Doe, John undefined]\nmiddle_name = E.\ndepartment = Psychology\ninstitution = Special State University\ncity = Anywhere\nstate = Texas\ncountry = USA\noffice_phone = 123-456-7891\ncell_phone = \nemail_address = [email protected]\nwebsite = \n\n): failed to open stream: File name too long in -File path name.proposalpdf.php on line 21, referer: Filepath name 

내가 꽤 많이 PHP 초보자이고 오류를 수정하고 내가 원하는 것처럼보고 얻기 위해 다음에 무엇을 모른다. 단 1 명의 발표자가있을 수도 있고 여러 명이있을 수도 있으므로 솔루션은 모든 발표자를 통과 할 때까지 반복해야합니다. 어떤 도움을 주시면 감사하겠습니다.

UPDATE : parse_ini_string로 변경하고 배열을 에코 ,이 얻을 :

Array 
(
    [middle_name] => 
    [department] => Political Science 
    [institution] => Special University 
    [city] => Anywhere 
    [state] => Indiana 
    [country] => USA 
    [office_phone] => 123-456-7891 
    [cell_phone] => 568-456-4589 
    [email_address] => [email protected] 
    [website] => 
) 

지금까지 너무 좋아. 어떻게하면 원하는 형식으로 바꿀 수 있습니까?

+0

이 변수 $ data [ 'presenters']는 해당 ini 파일의 파일 경로를 보유합니까 ?? – Surace

+0

아아 parse_ini_string을 사용해야합니다. – Surace

+0

고마워요! 안녕하세요, parse_ini_string을 사용하고 배열을 에코하면 다음과 같이 표시됩니다. Array ( [middle_name] => [department] => Political Science [institution] => Special University [city] => Anywhere [state] => Indiana [country] => USA [office_phone] => 123-456-7891 [cell_phone] => 568-456-4589 [email_address] => [email protected] [website] => ) 지금까지는 그렇게 좋았습니다. 어떻게하면 원하는 형식으로 바꿀 수 있습니까? 이 질문을 주 질문에 추가 할 것입니다. –

답변

0

나는 연구와 다른 누군가가 쓴 예를 바탕으로 알아 냈습니다.

//convert presenter data from array to string 
    $cleanpresenters = parse_ini_string($data['presenters'],TRUE); 
    foreach ($cleanpresenters as $name=>$val1) 
    { 
      $name = trim($name); 
      $presenters[] = $name; 
      $convertedPresenters .= "$name, {$val1['department']}, {$val1['institution']}\n"; 
    }; 

위의 트릭을 수행했습니다. 각 발표자는 이름, 부서, 기관으로 한 줄에 인쇄합니다. 조언과 올바른 방향으로 포인트 주셔서 감사합니다.

관련 문제