2012-04-06 7 views
5

각 행에 전자 메일 ID가 1 개인 CSV 파일이 있습니다. 각 이메일 ID 뒤에 쉼표를 추가하고 싶습니다. php를 사용하여 각 행의 끝에 쉼표를 추가하고 싶습니다. 내가 어떻게 할 수 있니? 거기에 특별한 기능이 있습니까?PHP를 사용하여 각 행의 끝에 쉼표를 추가하십시오.

업데이트 나는 이것을 자바 스크립트에서 배열로 만들 수 있기를 바랍니다.

PHP를 사용하여 CSV 파일을로드하고 내 js에서 인쇄합니다. 그래서 나는 이런 식으로 뭔가를 acheive 것을

var myCars=[<?php print $csv; ?>]; 

처럼

.

var myCars=["[email protected]","[email protected]","[email protected]"]; 

또는 더 좋은 방법이 있습니까? 그런

+0

각 줄을 추가하면 더 이상 유효한 CSV 파일이되지 않습니까 ??? 당신은 당신의 유스 케이스를 설명 할 수 있습니까 – Baba

+0

나는 그것이 유효한 csv가되기를 원합니다. – esafwan

+0

쉼표가없는 파일은 이미 유효한 CSV입니다. 겪고있는 문제의 진정한 본질은 무엇입니까? 구문 분석하지 못했습니까? –

답변

2

왜 CSV-특정 기능을 사용하지, 어떻게해야합니까?

$old = fopen('file.csv','r'); 
$new = fopen('new.csv','w+'); 
while($line = fgetcsv($old)) 
{ 
    fputcsv($new,$line); 
} 
fclose($old); 
fclose($new); 

위의 코드는, 줄에 줄을 새로운 CSV를 작성합니다,하지만 당신은 그냥 자바 스크립트 배열을 생성 할 경우, 왜 이렇게하지 :

$file = fopen ('file.csv','r'); 
$all = array(); 
while($line = fgetcsv($file)) 
{ 
    $all[] = $line[0];//if there is only 1 field/line 
    $all = array_merge($all,$line);//if multiple 
} 
fclose($file); 
$js_array = '["'.implode('",',$all).'"];'; 
//or, the way I'd advise against, but good for multi-dimensional, assoc arrays 
echo 'var array = JSON.parse("'.json_encode($all).'");'; 
5
$lines = file('file.csv'); 
foreach ($lines as & $line) { 
    $line .= ','; 
} 
file_put_contents('file.new.csv', implode(PHP_EOL, $lines)); 

뭔가 환호

+0

현재 쉼표가 줄 바꿈됩니다. :/각 이메일 ID의 끝이 오는 방법이 있습니까? – esafwan

+0

올바른, 내 잘못, trim() 추가해야합니다 : $ line = trim ($ line). ','; $ line. = ','대신; – smassey

+0

아직 작동하지 않습니다. 코드에서 업데이트하고 표시 할 수 있습니까? – esafwan

2
<?php 
$lines = file('org.csv'); 
foreach ($lines as & $line) { 
    $line = trim($line) . ','; 
} 
file_put_contents('new.csv', implode(PHP_EOL, $lines)); 
+1

마지막 업데이트를 읽은 후, JS에이 내용을 추가한다고 말하면, 마지막 줄에서 마지막으로 쉼표를 제거해야합니다. 그렇지 않으면 배열이 JS에서 중단됩니다. var myCars = []; – smassey

2

왜 그냥

$csv = str_replace("\n", ",\n", $csv); 
2

전체 csv 문자열을 에코하는 대신 fgetcsv 함수를 사용하여 파일을 배열로 가져온 다음 json_encode()를 사용하여 에코 할 수 있습니다. 그렇게하면 유효한 자바 스크립트 배열을 얻을 수 있습니다. 또한 문자열을 따옴표로 묶어 인코딩합니다.

아, 모든 문자열에서 utf8_encode를 실행할 반복기를 통해 배열을 실행해야합니다. 유효하지 않은 utf8 문자가 있으면 json_encode가 barf가됩니다.

php.net에는 여러 가지 다른 예가 있지만, 필요한 경우 몇 가지 예를 제공 할 수 있습니다.

관련 문제