PHP를 사용하여 CSV 파일의 특정 위치에 쓸 수 있습니까?PHP를 사용하여 CSV 파일의 특정 위치에 값을 삽입하는 방법
CSV 파일의 끝에 데이터를 추가하고 싶지 않습니다. 그러나 CSV에 이미 값이있는 행 끝에 데이터를 추가하려고합니다. 사전
PHP를 사용하여 CSV 파일의 특정 위치에 쓸 수 있습니까?PHP를 사용하여 CSV 파일의 특정 위치에 값을 삽입하는 방법
CSV 파일의 끝에 데이터를 추가하고 싶지 않습니다. 그러나 CSV에 이미 값이있는 행 끝에 데이터를 추가하려고합니다. 사전
여기 있습니다. 완전한 작업 코드 :
<?php
//A helping function to insert data at any position in array.
function array_insert($array, $pos, $val)
{
$array2 = array_splice($array, $pos);
$array[] = $val;
$array = array_merge($array, $array2);
return $array;
}
//What and where you want to insert
$DataToInsert = '11,Shamit,Male';
$PositionToInsert = 3;
//Full path & Name of the CSV File
$FileName = 'data.csv';
//Read the file and get is as a array of lines.
$arrLines = file($FileName);
//Insert data into this array.
$Result = array_insert($arrLines, $PositionToInsert, $DataToInsert);
//Convert result array to string.
$ResultStr = implode("\n", $Result);
//Write to the file.
file_put_contents($FileName, $ResultStr);
?>
없음에
덕분에, 그것은 자연을 파일 시스템에 의한 파일의 중간에 새로운 데이터를 삽입 할 수 아니다.
끝에 추가 만 가능합니다.
유일한 해결책은 다른 파일을 만들고, 소스의 시작 부분을 작성하고, 새 값을 추가 한 다음 나머지 소스 파일을 추가하는 것입니다. 마지막으로 결과 파일의 이름을 원래 이름으로 바꿉니다.
기술적으로 Col. Shrapnel's answer은 옳습니다.
문제는 일부 데이터를 변경하기 위해 이러한 파일 작업을 모두 처리하고 싶지 않다는 것입니다. 나는 너에게 동의한다. 그러나 당신은 잘못된 수준의 해결책을 찾고 있습니다. 이 문제를 더 높은 수준으로 놓으십시오. CSV 데이터베이스에서 엔터티를 나타내는 모델을 만듭니다. 모델의 상태를 수정하고 save()
메서드를 호출하십시오. 이 메서드는 모델의 상태를 CSV 형식으로 쓰도록해야합니다.
그래도 저수준 작업을 추상화하는 CSV 라이브러리를 사용할 수 있습니다. 예를 들어 parsecsv-for-php을 사용하면 특정 셀을 타겟팅 할 수 있습니다.
$csv = new parseCSV();
$csv->sort_by = 'id';
$csv->parse('data.csv');
# "4" is the value of the "id" column of the CSV row
$csv->data[4]['firstname'] = 'John';
$csv->save();
이 문제에 대한 다른 해결책 –
@Ankur 귀하의 질문에 대한 답변을 추가했습니다. –