Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $html->loadHTML('<?xml version="1.0" encoding="UTF-8"?>'."n".file_get_contents($_FILES['file']['tmp_name']));
- <?php
- $user_name = 'Логин'; //Логин
- $user_pass = 'Пароль'; //Пароль
- $user = trim($_SERVER['PHP_AUTH_USER']);
- $pass = trim($_SERVER['PHP_AUTH_PW']);
- if(!($user_name==$user && $user_pass==$pass)){
- header('WWW-Authenticate: Basic realm="Manage"');
- header('HTTP/1.0 401 Unauthorized');
- die ("Not authorized");
- }
- require_once __DIR__.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'function.php';
- $db = db();
- if($_SERVER['REQUEST_METHOD']==='POST' && $_FILES['file']['error']===0){
- $html = new DOMDocument();
- libxml_use_internal_errors(true);
- $html->loadHTML('<?xml version="1.0" encoding="UTF-8"?>'."n".file_get_contents($_FILES['file']['tmp_name']));
- $total_rows = 0;
- $added = 0;
- $sql = "INSERT INTO property VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
- foreach($html->getElementsByTagName('tr') as $tr){
- if($tr->getAttribute('class')=='restop'){
- continue;
- }
- $tds = $tr->getElementsByTagName('td');
- if($tds->item(0)->hasAttribute('colspan')){
- continue;
- }
- $address = explode(',',$tds->item(2)->nodeValue);
- if($stmt = $db->prepare($sql)){
- $stmt->bindValue(1,clearString($address[0]),SQLITE3_TEXT);//area
- $stmt->bindValue(2,clearString(implode(', ',array_slice($address,1))),SQLITE3_TEXT);//address
- $stmt->bindValue(3,clearString($tds->item(3)->nodeValue),SQLITE3_TEXT);//metro
- $stmt->bindValue(4,clearString($tds->item(4)->nodeValue),SQLITE3_TEXT);//floor
- $stmt->bindValue(5,intval($tds->item(1)->nodeValue),SQLITE3_INTEGER);//rooms
- $stmt->bindValue(6,clearString($tds->item(1)->nodeValue),SQLITE3_TEXT);//rooms_s
- $stmt->bindValue(7,clearString($tds->item(5)->nodeValue),SQLITE3_INTEGER);//sq_total
- $stmt->bindValue(8,clearString($tds->item(6)->nodeValue),SQLITE3_TEXT);//sq_room
- $stmt->bindValue(9,clearString($tds->item(7)->nodeValue),SQLITE3_INTEGER);//sq_kitchen
- $stmt->bindValue(10,clearString($tds->item(8)->nodeValue)=='+');//phone
- $stmt->bindValue(11,clearString($tds->item(9)->nodeValue)=='+');//furniture
- $stmt->bindValue(12,clearString($tds->item(10)->nodeValue)=='+');//fridge
- $stmt->bindValue(13,clearString($tds->item(11)->nodeValue)=='+');//st_metro
- $stmt->bindValue(14,intval($tds->item(12)->nodeValue));//price
- $stmt->bindValue(15,clearString($tds->item(13)->nodeValue),SQLITE3_TEXT);//term
- $stmt->bindValue(16,clearString(preg_replace(['/^[^,]+,/','/Взято.*$/'],'',$tds->item(16)->nodeValue)),SQLITE3_TEXT);//other
- $stmt->bindValue(17,date('Y-m-d H:i:s'));//created_at
- $stmt->execute();
- $added++;
- }
- $total_rows++;
- }
- $db->query('UPDATE config SET `value`="'.date('Y-m-d H:i:s').'" WHERE `name`="db_updated"');
- $db->query("DELETE FROM `property` WHERE strftime('%s',created_at)<(strftime('%s','now')-(3600*24*10))");
- ?>
- <h3>Добавлено <?=$added?> из <?=($total_rows)?> объектов!</h3>
- <?php
- }
- ?>
- <div style="width:50%;margin:10% auto;text-align:center;">
- <div style='padding:40px;'>
- <div>Формат файла: <strong>html</strong></div>
- <div>Кодировка: <strong>UTF-8</strong></div>
- </div>
- <form method='POST' enctype="multipart/form-data">
- <input type='file' name='file' accept='.txt,.html'>
- <button>Сохранить</button>
- </form>
- </div>
Add Comment
Please, Sign In to add comment