Guest User

Untitled

a guest
Dec 6th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. $html->loadHTML('<?xml version="1.0" encoding="UTF-8"?>'."n".file_get_contents($_FILES['file']['tmp_name']));
  2.  
  3. <?php
  4.  
  5. $user_name = 'Логин'; //Логин
  6. $user_pass = 'Пароль'; //Пароль
  7. $user = trim($_SERVER['PHP_AUTH_USER']);
  8. $pass = trim($_SERVER['PHP_AUTH_PW']);
  9. if(!($user_name==$user && $user_pass==$pass)){
  10. header('WWW-Authenticate: Basic realm="Manage"');
  11. header('HTTP/1.0 401 Unauthorized');
  12. die ("Not authorized");
  13. }
  14. require_once __DIR__.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'function.php';
  15. $db = db();
  16. if($_SERVER['REQUEST_METHOD']==='POST' && $_FILES['file']['error']===0){
  17. $html = new DOMDocument();
  18. libxml_use_internal_errors(true);
  19. $html->loadHTML('<?xml version="1.0" encoding="UTF-8"?>'."n".file_get_contents($_FILES['file']['tmp_name']));
  20. $total_rows = 0;
  21. $added = 0;
  22. $sql = "INSERT INTO property VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  23. foreach($html->getElementsByTagName('tr') as $tr){
  24. if($tr->getAttribute('class')=='restop'){
  25. continue;
  26. }
  27. $tds = $tr->getElementsByTagName('td');
  28. if($tds->item(0)->hasAttribute('colspan')){
  29. continue;
  30. }
  31. $address = explode(',',$tds->item(2)->nodeValue);
  32. if($stmt = $db->prepare($sql)){
  33. $stmt->bindValue(1,clearString($address[0]),SQLITE3_TEXT);//area
  34. $stmt->bindValue(2,clearString(implode(', ',array_slice($address,1))),SQLITE3_TEXT);//address
  35. $stmt->bindValue(3,clearString($tds->item(3)->nodeValue),SQLITE3_TEXT);//metro
  36. $stmt->bindValue(4,clearString($tds->item(4)->nodeValue),SQLITE3_TEXT);//floor
  37. $stmt->bindValue(5,intval($tds->item(1)->nodeValue),SQLITE3_INTEGER);//rooms
  38. $stmt->bindValue(6,clearString($tds->item(1)->nodeValue),SQLITE3_TEXT);//rooms_s
  39. $stmt->bindValue(7,clearString($tds->item(5)->nodeValue),SQLITE3_INTEGER);//sq_total
  40. $stmt->bindValue(8,clearString($tds->item(6)->nodeValue),SQLITE3_TEXT);//sq_room
  41. $stmt->bindValue(9,clearString($tds->item(7)->nodeValue),SQLITE3_INTEGER);//sq_kitchen
  42. $stmt->bindValue(10,clearString($tds->item(8)->nodeValue)=='+');//phone
  43. $stmt->bindValue(11,clearString($tds->item(9)->nodeValue)=='+');//furniture
  44. $stmt->bindValue(12,clearString($tds->item(10)->nodeValue)=='+');//fridge
  45. $stmt->bindValue(13,clearString($tds->item(11)->nodeValue)=='+');//st_metro
  46. $stmt->bindValue(14,intval($tds->item(12)->nodeValue));//price
  47. $stmt->bindValue(15,clearString($tds->item(13)->nodeValue),SQLITE3_TEXT);//term
  48. $stmt->bindValue(16,clearString(preg_replace(['/^[^,]+,/','/Взято.*$/'],'',$tds->item(16)->nodeValue)),SQLITE3_TEXT);//other
  49. $stmt->bindValue(17,date('Y-m-d H:i:s'));//created_at
  50. $stmt->execute();
  51. $added++;
  52. }
  53. $total_rows++;
  54. }
  55. $db->query('UPDATE config SET `value`="'.date('Y-m-d H:i:s').'" WHERE `name`="db_updated"');
  56. $db->query("DELETE FROM `property` WHERE strftime('%s',created_at)<(strftime('%s','now')-(3600*24*10))");
  57. ?>
  58. <h3>Добавлено <?=$added?> из <?=($total_rows)?> объектов!</h3>
  59. <?php
  60. }
  61. ?>
  62.  
  63. <div style="width:50%;margin:10% auto;text-align:center;">
  64. <div style='padding:40px;'>
  65. <div>Формат файла: <strong>html</strong></div>
  66. <div>Кодировка: <strong>UTF-8</strong></div>
  67. </div>
  68. <form method='POST' enctype="multipart/form-data">
  69. <input type='file' name='file' accept='.txt,.html'>
  70. <button>Сохранить</button>
  71. </form>
  72. </div>
Add Comment
Please, Sign In to add comment