- Автор темы
- #1
Всем доброго времени суток.
Стопор с массивами произошел((.
Суть. Есть левый сайт (shop.ru) - в нем имена пользователей и телефоны (настоящие)!
Есть моя БД - в ней настоящие и левые (придуманные) имена и номера телефонов.
Как сопоставить/проверить/прочекать имена из БД в спарсенные, так, чтобы те которые совпадают - обновились номера телефонов в БД, а которые придуманные (имена+номера телефонов) в БД, а нет на спарсенном - заменились на нуль?
Пробовал через in_array, array_search - даже ошибок не выдает(( белый лист
+ дополнение
$result[] = array_combine($u, $p);
менял ключ на значение - не помогло((
$result[] = array_combine($p, $u);
Стопор с массивами произошел((.
PHP:
<?php
//========== ДАННЫЕ ИЗ БД ===============//
$query = $mysqli->query("SELECT `users` FROM `_shopper`");
if ($query->num_rows)
{
$datau = array();
while($row = $query->fetch_assoc())
{
$datau[] = $row['users'];
}
print_r($datau); // юзеры из БД
//Array ( [0] => vika [1] => masha [2] => denis [3] => igor [4] => misha [5] => sasha [6] => valera
//========== НИЖЕ ПАРСЕР ============//
$result = array();
for($i=1;$i<=3;$i++)
{
$url = "https://shop.ru/list?order&page=".$i; // проходим по 3 страницам
$text = html_entity_decode(curlfun($url)); // парсим через CURL
preg_match_all('~<span class="user">(.*?)</span>~is', implode($text[1]), $user);
preg_match_all('~<span class="phone">(.*?)</span>~is', implode($text[1]), $phone);
$u = $user[1]; // 100 человек
$p = $phone[1]; // 100 номеров телефонов
$result[] = array_combine($u, $p);
}
}
print_r($result); // спарсенные юзеры и телефоны
//из-за 3х страниц, выводится такой монстр
//Array ( [0] => Array ( [vika] => 890632555511 [masha] => 89223336666 [kesha] => 890158999212 ...
// [1] => Array ( [denis] => 89325989898 [igor] => 902698752665 ...
// [2] => Array ( [misha] => 890569696922 [valera] => 95236994552 ...
//???????? СТОПОР(( ???????
if (strlen($phonne) < 8) { //длинна номера
$mysqli->query("UPDATE `_shopper` SET `users` = '".$usser."', `phone` = '".$phonne."'");
}else{
$mysqli->query("UPDATE `_shopper` SET `users` = '".$usser."', `phone` = '0'");
}
Суть. Есть левый сайт (shop.ru) - в нем имена пользователей и телефоны (настоящие)!
Есть моя БД - в ней настоящие и левые (придуманные) имена и номера телефонов.
Как сопоставить/проверить/прочекать имена из БД в спарсенные, так, чтобы те которые совпадают - обновились номера телефонов в БД, а которые придуманные (имена+номера телефонов) в БД, а нет на спарсенном - заменились на нуль?
Пробовал через in_array, array_search - даже ошибок не выдает(( белый лист
+ дополнение
$result[] = array_combine($u, $p);
менял ключ на значение - не помогло((
$result[] = array_combine($p, $u);
Последнее редактирование модератором: