웹스쿨
CSV 컨버팅 삽질 메모 본문
CSV 를 제공해준 업체의 부실함으로 엄청 고생을 했습니다.
구분자가 싱글쿼터인데, 스트링에 싱글쿼터가 워낙 많다보니 결국 내용부분의 싱글쿼터 치환 프로그램부터 짰습니다.
<?php
ini_set('memory_limit','512M');
ini_set('max_execution_time', 0);
error_reporting(E_ALL & ~E_NOTICE);
$file = "upload/dbo.se_History.csv";
$file = "upload/dbo.se_Book_History.csv";
$fp = fopen($file, "r");
$string = fread($fp, filesize($file));
fclose($fp);
//$string = str_replace("\n", "<br>", $string);
$tmp = preg_split("/[0-9]{2}\:[0-9]{2}\:[0-9]{2}\.[0-9]{3}/", $string); //시간으로 분리
$list = array();
foreach($tmp as $key => $str){
if(trim($str) == ""){
continue;
}
$arr = explode("'", $str);
//print_r($arr);
$arr2 = $arr;
array_shift($arr);
array_shift($arr);
array_shift($arr);
array_pop($arr);
$list[$key] = str_replace("\n", "", $arr2[0]) . "'" . $arr2[1] . "'" . $arr2[2] . "'" . implode("`", $arr) . "'" . trim($arr2[sizeof($arr2) - 1]);
}
//print_r($list);
$sql = "SELECT id FROM member";
$result = $core['db']->query($sql);
$id_list = array();
while($row = $core['db']->result_assoc($result)){
$id_list[] = $row['id'];
}
//print_r2($id_list);exit;
$type = "history";
foreach($list as $key => $value){
$tmp = explode("'", $value);
$stud_id = $tmp[1];
$writ_id = $tmp[2];
$content = addslashes($tmp[3]);
$content = str_replace("\n", "<br>", $content);
$reg_date = trim($tmp[4]);
if(in_array($stud_id, $id_list)){
$sql = "
INSERT member_history
SET type = '".$type."',
writ_id = '".$writ_id."',
stud_id = '".$stud_id."',
content = '".$content."',
reg_date = '".$reg_date."'
";
//echo $sql;exit;
$core['db']->query($sql);
}
}
echo "완료!";
exit;
?>
https://webschool.kr/?v=board_view&board_key=7&idx=324
에서 작성한 글입니다. 소스코드의 경우 해당 블로그에서 이뿌게 노출이 되지 않을 수 있사오니, 위 링크로 들어오셔서 보시길 바랍니다.
'개발 경험 Tip > PHP' 카테고리의 다른 글
curl 로 로그인 뚫기 (0) | 2023.03.31 |
---|---|
POST 데이터 제한이 .htaccess 수정사항 (0) | 2023.03.31 |
테이블 명세서 만들어주기. (0) | 2023.03.31 |
extension=php_curl.dll 모듈을 호출하지 못할때 (0) | 2023.03.31 |
전화번호를 "-" 형식으로 변경 (0) | 2023.03.31 |