find('h1.a10a3f92e9--title--vlZwT'); $data['name'] = pq($entry)->text(); //adress $entry = $doc->find('.a10a3f92e9--address-line--GRDTb'); $val = pq($entry)->text(); $val = mb_eregi_replace("(.*)[^.]{8}$", '\\1', $val); $data['adress'] = $val; //price //$entry = $doc->find('.a10a3f92e9--amount--ON6i1 span'); $entry = $doc->find('.a10a3f92e9--amount--v3ROW span'); $val = pq($entry)->text(); $val = str_replace("₽","", $val); $val = str_replace("","", $val); $val = preg_replace('/\p{Zs}/u', '', $val); if ($val == '') { $entry = $doc->find('.a10a3f92e9--amount--ON6i1 span'); $val = pq($entry)->text(); $val = str_replace("₽","", $val); $val = str_replace("","", $val); //$val = mb_convert_encoding($val,'UTF-8', 'auto'); $val = preg_replace('/\p{Zs}/u', '', $val); //$val = substr($val,-2); writeToLog($val,"PRICE"); $data['fullPricexls'] = $val; //$val = str_replace(" ","", $val); //$data['fullPricexls'] = floatval($val); //$data['fullPricexls'] = floatval(mb_ereg_replace('[^0-9.,]', '', $val)); }else { //$data['fullPricexls'] = $val; // writeToLog($val,"PRICE"); $data['fullPricexls'] = $val; //$data['fullPricexls'] = floatval(mb_ereg_replace('[^0-9.,]', '', $val)); } //square $entry = $doc->find('h1.a10a3f92e9--title--vlZwT'); $val = pq($entry)->text(); $val = mb_eregi_replace('[а-яё]', '', $val); $val = preg_replace("/^(.*?)(,\s)(.*?)$/", '\\3', $val); $val = preg_replace("/^(.+?)\s.+$/", '\\1', $val); $val = str_replace(',', '.', $val); $data['square'] =$val; //disc $entry = $doc->find('.a10a3f92e9--layout--BaqYw'); $data['description'] = pq($entry)->text(); //price m2 $data['squarePrice'] = round ($data['price'] / $data['square']); //height $entry = $doc->find('.a10a3f92e9--group--K5ZqN'); $val = pq($entry)->text(); $marker = stripos($val, "Высота потолков"); if($marker) { $val = substr($val, stripos($val, "Высота потолков")); } $val = substr($val, 0, strpos($val, "м")); $val = mb_eregi_replace('[а-яё]', '', $val); $val = mb_ereg_replace('[\s]', '', $val); $val = str_replace(',', '.', $val); $data['heightCeiling'] =$val; //bedroom $entry = $doc->find('h1.a10a3f92e9--title--vlZwT'); $val = pq($entry)->text(); $val = mb_substr($val, 0, 1); $data['bedroom'] = $val; //floor $entry = $doc->find('.a10a3f92e9--text--eplgM'); $val = pq($entry)->text(); $marker = stripos($val, "Этаж"); if($marker) { $val = substr($val, stripos($val, "Этаж")); } $val = substr($val, 0, strpos($val, "Год")); $val = mb_eregi_replace('[а-яё]', '', $val); $floor_result = explode(' ', $val); $data['floor'] = $floor_result[0]; $data['floors'] = $floor_result[2]; //otc $entry = $doc->find('.a10a3f92e9--text--eplgM'); $val = pq($entry)->text(); if (strpos($val, "Отделка")) { $marker = stripos($val, "Отделка"); if($marker) { $val = substr($val, stripos($val, "Отделка")); } $val = mb_eregi_replace("^.{7}(.*)$", '\\1', $val); $val = mb_eregi_replace("(.*)[^.]{1}$", '\\1', $val); $data['otc'] = $val; }else { $data['otc'] = ""; } $procent = 5; $db_update = db_query_exec($db_connect,"UPDATE id_loading SET status='finish_text',procent='$procent' WHERE code='$id_attempt'"); //print_r($doc); //photo $data1['images2'] = array(); //$elem = $doc->find('.a10a3f92e9--container--LhW9D a');//ищем элемент с классом site-title $elem = $doc->find('.a10a3f92e9--container--QtjDs a');//ищем элемент с классом site-title $text = $elem->html();//выводим html код из полученного элемента if ($text == NULL) { $elem = $doc->find('li.a10a3f92e9--container--LhW9D a');//ищем элемент с классом site-title $text = $elem->html();//выводим html код из полученного элемента $doc_2 = phpQuery::newDocument($text); $entry = $doc_2->find('img'); foreach ($entry as $row) { $img_src = pq($row)->attr('src'); $img_src = substr($img_src, 0, -5); $img_src = $img_src.'1.jpg'; $data1['images2'][] = $img_src; } }else { writeToLog($text,'HTML_IMG_ELEM'); $doc_2 = phpQuery::newDocument($text); $entry = $doc_2->find('img'); foreach ($entry as $row) { $img_src = pq($row)->attr('src'); $img_src = substr($img_src, 0, -5); $img_src = $img_src.'1.jpg'; $data1['images2'][] = $img_src; } } $procent = 5; $db_update = db_query_exec($db_connect,"UPDATE id_loading SET status='finish_get_image',procent='$procent' WHERE code='$id_attempt'"); $name = $data['name']; $adress = $data['adress']; $price = $data['price']; $square = $data['square']; $discription = $data['description']; $price_m2 = $data['price_m2']; $height = $data['height']; $bedroom = $data['bedroom']; $floor = $data['floor']; $otc = $data['otc']; array_pop($data1['images2']); $photo = implode(';',$data['images']); //$del_watermark = true; if ($del_watermark == true) { for ($i=0;$i $width) { $data['images'][] = ['id'=>$i,'url'=>$data1['images2'][$i],'preview'=>false,'orientation'=>'vertical','width'=>$width,'height'=>$height]; }else if ($height < $width) { $data['images'][] = ['id'=>$i,'url'=>$data1['images2'][$i],'preview'=>false,'orientation'=>'horizontal','width'=>$width,'height'=>$height]; } if ($del_watermark == true) { }else { $procent = $procent+floor(85/count($data1['images2'])); $db_update = db_query_exec($db_connect,"UPDATE id_loading SET status='photo_del_watermark',procent='$procent' WHERE code='$id_attempt'"); } } //echo json_encode($data['images']); $db_update = db_query_exec($db_connect,"UPDATE id_loading SET status='finish',procent='$procent' WHERE code='$id_attempt'"); writeToLog($data, "DATA"); echo json_encode($data); // $results = (db_query_exec (db_connect ('localhost','db_cian','yplhdUaxWSZBbsFB','db_cian'),"SELECT url FROM cian_object WHERE url LIKE '$url'")); // if (count($results) == 0) { // $insert = (db_query_exec (db_connect ('localhost','db_cian','yplhdUaxWSZBbsFB','db_cian'), // "INSERT INTO cian_object VALUES (NULL, '$name', '$adress', '$price', '$square', '$discription', '$price_m2', '$height', '$bedroom', '$floor', '$otc', '$photo', '$url')")); // }else if (count($results) == 1) { // } //print_r($data['adress']); // $entry = $doc->find('.a10a3f92e9--container--Havpv img'); // foreach ($entry as $row) { // print_r($row); // //$data['images'][] = pq($row)->attr('src'); // } //print_r($data['images']); //echo $data['square']; //var_dump($floor_result); //var_dump($data['bedroom']); function writeToLog($data, $title = '') { $log = "\n------------------------\n"; $log .= date("Y.m.d G:i:s") . "\n"; $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n"; $log .= print_r($data, 1); $log .= "\n------------------------\n"; file_put_contents(getcwd() . '/hookXML.log', $log, FILE_APPEND); return true; } function db_connect ($db_host, $db_user, $db_password,$db_name) { $db_connect = mysqli_connect ($db_host, $db_user, $db_password, $db_name); mysqli_set_charset($db_connect, 'utf8'); if ($db_connect <> false) { return $db_connect; } else { return "Error connection to Database: ".mysqli_connect_error($db_connect); } } function db_query_exec ($db_connect, $db_query) { $db_query_exec = mysqli_query($db_connect, $db_query); if ($db_query_exec <> false) { while($db_query_exec_result_row = mysqli_fetch_assoc($db_query_exec)) { $db_query_exec_result_array[] = $db_query_exec_result_row; } return $db_query_exec_result_array; } else { return "Error query: ". mysqli_error($db_query_exec); } } function get_image ($url_image) { $url = 'http://81.200.150.113/remove_watermark'; $data = ['image_url' => $url_image]; $options = [ 'http' => [ 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data), ], ]; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); $test = json_decode($result, true); if ($result === false) { /* Handle error */ } $base64String = $test['edited_image']; $decodedData = base64_decode($base64String); $url_work = pathinfo($url_image); $name_url = $url_work['filename']; $file_path = 'images/'.$name_url.'.'.$url_work['extension']; file_put_contents($file_path, $decodedData); return ('https://spa-bitrix.ru/masthev/cian/'.$file_path) ; } ?>