Тем, кто задумал делать интернет магазин, а товары заполнять ручками лень, вот, пожалуйста:
<?php if (!session_id()) session_start(); if (isset($_GET['kill_ses']))kill_ses(); $db=new mysqli('localhost','root',''); $data_arr=array(); if (!$_SESSION['data_arr']){ if (!is_file("CatalogFull.csv")) die('Have not file!'); $fp=fopen("CatalogFull.csv","r"); $head=fgetcsv($fp,'null',';'); while (($line=fgetcsv($fp,1024,';')) !==false){ $data_arr[]=$line; } fclose($fp); $_SESSION['data_arr']=$data_arr; $_SESSION['is_new_start']=true; }else{ $data_arr=$_SESSION['data_arr']; $_SESSION['is_new_start']=false; } $db->select_db('shop'); $db->query("SET NAMES CP1251"); $db->query("SET COLLATION_CONNECTION=CP1251_GENERAL_CI"); if (!$_SESSION['parsed']){ $res=$db->query("select art from catalog where parsed=1"); $_SESSION['parsed']=array(); while ($row=$res->fetch_object()){ $_SESSION['parsed'][]=$row->art; } } $cnt=0; foreach ($data_arr as $arr){ if ($cnt==0) echo "First: ".$arr[12]."<br>"; if (!in_array($arr[12],$_SESSION['parsed']) and ($arr[12]<>"")){ $img=null; $desc=null; $forum=file_get_contents("http://www.forum3.ru/?cmd=show_tovar&code=".$arr[12]); preg_match_all('#<a class="fancybox_tovar_galery" tovarcode="'.$arr[12].'"><img src="(.+?)"#is', $forum, $data); if (!empty($data[1])){ $img=$data[1][0]; } if ($img){ $ext=explode('.',$img); file_put_contents("images/".$arr[12].".".$ext[count($ext)-1],file_get_contents($img)); } $forum=str_replace('class="characteristicBox"','class="desc"',$forum); $data=null; preg_match_all('#<!--characteristicBox-->(.+?)<!--/characteristicBox-->#is', $forum, $data); if (!empty($data[1])){ $desc=$data[1][0]; } if ($img or $desc) echo $arr[12].' Found!<br>'; if ($img){ $img=$arr[12].".".$ext[count($ext)-1]; }else{ $img=''; } $desc=str_replace("'","",$desc); $arr[13]=str_replace("'","",$arr[13]); $added=time(); $desc=str_replace("\n","",$desc); $desc=str_replace("\r\n","",$desc); $desc=str_replace(chr(13),"",$desc); $desc=preg_replace('~style="[^"]*"~i', '', $desc); $desc=str_replace(";",".",$desc); //$desc=str_replace('"',"'",$desc); $desc=str_replace('<li />',"",$desc); $desc=str_replace(' .','',$desc); $arr[13]=str_replace("®",'',$arr[13]); $arr[13]=str_replace("™",'',$arr[13]); $sql=sprintf("INSERT INTO `shop`.`catalog` (`ID_Tovar`, `ID_Kategor`, `NameKat0`, `NameKat1`, `NameKat2`, `NameKat3`, `NameKat4`, `NameKat5`, `Art`, `Tovar`, `Price_1`, `Currency1`, `Garant`, `Sklad`, `description`, `image`,`parsed`,`added`) VALUES ('%d', '%d', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%s', '%d', '%s', '%s', '%d', '%s', '%s','1',%d)", $arr[0],$arr[1],$arr[2],$arr[3],$arr[4],$arr[5],$arr[6],$arr[7],$arr[12],$arr[13],$arr[16],$arr[17],$arr[25],$arr[30],$desc,$img,$added); $db->query($sql); if ($db->errno)die($db->error."<br>".$sql); } $cnt++; array_shift($_SESSION['data_arr']); if ($cnt>200){ echo "Last: ".$arr[12]."<br>"; echo "Array size:".count($_SESSION['data_arr'])."."; echo "<script>setTimeout(function() {location='".$_SERVER['PHP_SELF']."';}, 1000);</script>"; die(); } } kill_ses(); echo "Done!"; function kill_ses(){ unset($_SESSION['data_arr']); unset($_SESSION['parsed']); unset($_SESSION['symnames']); unset($_SESSION['export_all']); } ?>
Штуковина «как есть», работает исправно. Допилите под себя и получайте профит!