사용한 주요 함수
- iconv_substr : iconv는 인코딩 문제 때문에 추가, substr함수는 문자열 일부 추출하는 함수
- preg_replace : 문자열 일부를 교체하는 함수
- is_numeric : 해당 문자열이 숫자인지 확인하는 함수
- explode : delimeter를 기준으로 나눠서 array에 저장하는 함수
- isset : 해당변수가 정의되었는지 확인하는 함수
- strpos : 찾고자 하는 문자열이 해당 문자열에 포함되어 있는지 확인하는 함수, 리턴값 조심.
<?php
include $_SERVER["DOCUMENT_ROOT"]."/include/db.php";
$sql = " select * from product ";
$rs = $pdo -> prepare($sql);
$rs -> execute();
while($p = $rs -> fetch()) {
$name = preg_replace("/\[.*\]/ ", "", $p["name"]);
$sql2 = " update product set name = ? where idx = ? ";
$save = $pdo -> prepare($sql2);
$save -> execute(array( $name, $p["idx"] ));
}
$csv = fopen("./monstermart_product_detail.csv", "r");
$cnt = 0;
while(($data = fgetcsv($csv, 1000, ",")) !== false) {
if($cnt++ == 0) continue;
$data = array(
"name" => iconv("euc-kr", "utf-8//IGNORE", $data[0]),
"nameEn" => iconv("euc-kr", "utf-8", $data[1]),
"volume" => iconv("euc-kr", "utf-8", $data[2]),
"image" => iconv("euc-kr", "utf-8", $data[3]),
"nutrient" => iconv("euc-kr", "utf-8", $data[4]),
"link" => iconv("euc-kr", "utf-8", $data[5])
);
$functionalMaterial = "product.functionalMaterial-monster-".$data["nutrient"];
if(strpos($data["name"],"(")){//name에 ()가 있으면 volume으로
$array = explode("(", $data["name"]);
$name = $array[0];
$volume = $array[1];
$volume = iconv_substr($volume, 0, -1, "utf-8");//volume값 뒤에 )빼주기
}
else{//name에 ()가 없는 경우
$name = $data["name"];
$volume = "";
}
$taste = iconv_substr($data["volume"], 0, 1, "utf-8");
if(!is_numeric($taste)){//taste값이 존재하면
if(strpos($data["volume"],"(")){//taste값에 (품절) 떼기
$vol = explode("(", $data["volume"]);
$name = $name."(".$vol[0].")";
}
else $name = $name."(".$data["volume"].")";
}
$numTimes="";
if(strpos($volume, ",")){//volume, numTimes 나누기
$arr = explode(",", $volume);
$volume = $arr[0];
$numTimes = $arr[1];
}
echo "name = ".$name."<br>"."volume = ".$volume."<br>"."numTimes = ".$numTimes."<br><br>";*/
//$data["volume"] = explode(",", $data["volume"]);
//$volume = (isset($data["volume"][0])) ? $data["volume"][0] : "";
//$numTimes = (isset($data["volume"][1])) ? $data["volume"][1] : "";
//$price = preg_replace("/[^0-9]*/s","", $data["price"]);
//$subIdx = preg_replace("/[^0-9]*/s","", $data["link"]);
$sql = " insert into product ( name, contents, volume, numTimes, image, brand, functionalMaterial, certification) values ( ?, ?, ?, ?, ?, ?, ?, ?) ";
$save = $pdo -> prepare($sql);
$save -> execute(array( $name, '', $volume, $numTimes, $data["image"], "몬스터마트", $functionalMaterial, ""));
}
fclose($csv);
?>
<?php
include $_SERVER["DOCUMENT_ROOT"]."/include/db.php";
$sql = " select * from product ";
$rs = $pdo -> prepare($sql);
$rs -> execute();
while($p = $rs -> fetch()) {
$name = preg_replace("/\[.*\]/ ", "", $p["name"]);
$sql2 = " update product set name = ? where idx = ? ";
$save = $pdo -> prepare($sql2);
$save -> execute(array( $name, $p["idx"] ));
}
$csv = fopen("./myProtein_product_detail.csv", "r");
$cnt = 0;
while(($data = fgetcsv($csv, 1000, ",")) !== false) {
if($cnt++ == 0) continue;
$data = array(
"name" => iconv("euc-kr", "utf-8//IGNORE", $data[0]),
"price" => iconv("euc-kr", "utf-8", $data[1]),
"volume" => iconv("euc-kr", "utf-8", $data[2]),
"image" => iconv("euc-kr", "utf-8", $data[3]),
"nutrient" => iconv("euc-kr", "utf-8", $data[4]),
"link" => iconv("euc-kr", "utf-8", $data[5])
);
$name = $data["name"];
$price = preg_replace("/[^0-9]*/s","", $data["price"]);
$volume = $data["volume"];
$numTimes = "";
$functionalMaterial = "product.functionalMaterial-myprotein-".$data["nutrient"];
$result = "name : ".$name."<br>"."price : ".$price."<br>";
$result = $result."volume : ".$volume."<br>"."numTimes : ".$numTimes."<br>";
echo $result;
$sql = " insert into product ( name, contents, volume, numTimes, image, brand, functionalMaterial, certification) values ( ?, ?, ?, ?, ?, ?, ?, ?) ";
$save = $pdo -> prepare($sql);
$save -> execute(array( $name, '', $volume, $numTimes, $data["image"], "마이프로틴", $functionalMaterial, ""));
}
fclose($csv);
?>
728x90
반응형
'WEB' 카테고리의 다른 글
[Node.js] url parse / File read (0) | 2020.06.29 |
---|---|
[Javascript] var, let, const 차이 (0) | 2020.02.05 |
[Django/Blog] DB에서 데이터를 가져와 템플릿에 적용 (0) | 2019.12.08 |
[Django/Blog] Django ORM & QuerySets (0) | 2019.12.07 |
[Django/Blog] View / Template (0) | 2019.12.07 |