2013-05-05 2 views
10

나는 이것에 익숙하지 않지만 여기서 질문하기 전에 가능한 한 많이 배우려고 노력했다. 불행히도, 나는 명확한 질문을하는 어휘가있을 것 같지 않다. 죄송하며 미리 감사드립니다.PHP 배열을 별도의 파일로 구성하기

여러 파일의 데이터를 배열로 만들 수 있습니까? 일련의 텍스트 파일을 가지고 있고 각 파일의 첫 번째 줄에 3 개의 태그을 쉼표로 구분하여 모든 텍스트 파일의 모든 태그 배열에 저장하려고합니다. 그것에 대해? 내 파일에 태그를 포함 할 수 있습니다 예를 들어

페이지 및 컨텐츠의 제목 :

social movements, handout, international 

Haiti and the Politics of Resistance 

Haiti, officially the Republic of Haiti, is a Caribbean country. It occupies the western, smaller portion of the island of Hispaniola, in the Greater Antillean archipelago, which it shares with the Dominican Republic. Ayiti (land of high mountains) was the indigenous Taíno or Amerindian name for the island. The country's highest point is Pic la Selle, at 2,680 metres (8,793 ft). The total area of Haiti is 27,750 square kilometres (10,714 sq mi) and its capital is Port-au-Prince. Haitian Creole and French are the official languages. 

내 원하는 결과는 텍스트 파일의 모든에 사용되는 모든 태그가 포함 된 페이지는 각 해당 될 수있다 해당 태그가 포함 된 모든 페이지의 목록을 보려면 클릭하십시오.

지금은 중복 태그를 제거하고 싶습니다. 첫 번째 파일의 첫 번째 행을 읽고 해당 행을 분해 한 다음 해당 값을 배열에 써야합니까? 그런 다음 다음 파일에서도 동일하게 작업합니까? 나는 첫째로,이 작업을 수행하려고했습니다 :

$content = file('mytextfilename.txt'); 
//First line: $content[0]; 
echo $content[0]; 

나는 here을 발견했다. 내가 찾은 폭발 할 물건이 뒤 따랐다 here.

$content = explode(",",$content); 
print $content[0]; 

이것은 분명히 작동하지 않았지만 이유는 알 수 없습니다. 만약 내가 자신을 잘 설명하지 않았다면, 제 질문을 명확하게하려고 시도 할 수 있도록 물어보십시오.

도움 주셔서 감사합니다. Adam.

+2

을 고려 할 수 있습니까? –

+1

예상 출력을 추가 할 수도 있습니다 – Baba

+2

''폭발 '보다는'str_getcsv()'를 들여다보고 싶을 수도 있습니다. 그리고 여러 파일을 읽으려면'glob()'과'foreach()'를 사용하여 열을 수집하면됩니다. - 각 파일에 한 줄의 내용 만 포함되어 있는지 계속 언급해야합니다. 그렇지 않으면 꽤 깔끔한 첫 번째 질문. – mario

답변

3

당신이 시도 할 수 :

$tags = array_reduce(glob(__DIR__ . "/*.txt"), function ($a, $b) { 
    $b = explode(",", (new SplFileObject($b, "r"))->fgets()); 
    return array_merge($a, $b); 
}, array()); 

// To Remove Spaces 
$tags = array_map("trim", $tags); 

// To make it unique 
$tags = array_unique($tags); 

print_r($tags); 

당신은 이빨이 나고 있기 때문에 .. 당신은`mytextfilename.txt`에서 몇 가지 예제 데이터를 게시 할 수이 버전

$tags = array(); // Define tags 
$files = glob(__DIR__ . "/*.txt"); // load all txt fules in current folder 

foreach($files as $v) { 
    $f = fopen($v, 'r'); // read file 
    $line = fgets($f); // get first line 
    $parts = explode(",", $line); // explode the tags 
    $tags = array_merge($tags, $parts); // merge parts to tags 
    fclose($f); // closr file 
} 

// To Remove Spaces 
$tags = array_map("trim", $tags); 

// To make it unique 
$tags = array_unique($tags); 

print_r($tags); 
+0

안녕하세요, 감사합니다. 각 요소가 의미하는 바를 설명하기 위해 이것을 분해 할 수 있습니까? 나는이 언어에 익숙하지 않다. 나는 몇 가지 용어를 찾았지만 아직 머리 속에 들어 맞지 않습니다 (문법을 모른다는 말을 할 수 있습니다). 또는, 그것을 PHP 파일로 복사 할 수있는 방식으로 작성하고, 그것을 읽을 수 있도록 내 서버에로드하고로드 할 수있는 텍스트 파일 몇 개를 만들어서 컨텍스트에 넣을 수 있습니까? 출력은 무엇입니까? 그렇지 않으면 나는 그것으로 많은 것을 할 수 있는지 확신하지 못한다. – adamburton

+0

당신이 이해할 수있는 간단한 버전을 추가했습니다. – Baba

+0

정말 대단합니다. 고마워요. 나는 그것을 이해하려고 노력하면서 지금 그것을 통해 모습을 드러내고있다. – adamburton

관련 문제