Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
-19 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
1

Strict Standards: Only variables should be passed by reference in

26.01.2017, 18:12. Просмотров 1611. Ответов 10
Метки нет (Все метки)


Всем привет.

Имеется вот такая ошибка:

PHP
1
2
Strict Standards: Only variables should be passed by reference in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 48
PHP Strict Standards:  Only variables should be passed by reference in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 47
Как исправить не знаю. Подскажите пожалуйста.

Вот код файла:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php 
libxml_use_internal_errors(true);
set_time_limit(0);
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
$base_url = "http://ffffff.ru/katalog_tovarov/";
$href = "";
define('BASEPATH', "");
$db = array();
include 'application/config/database.php';
$mysql = new mysqli($db['default']['hostname'], $db['default']['username'], $db['default']['password'], $db['default']['database']) or die('Mysql error. Check application/config/database.php');
$mysql->set_charset("utf8");
$photos = array();
$query = $mysql->query('SELECT `photo_url` FROM `c1_image`');
while($row = $query->fetch_assoc())
    $photos[] = $row["photo_url"];
$list = array();
 
while(true)
{
    $html = file_get_contents($base_url.$href);
    $dom = new DomDocument();
    $dom->loadHTML($html); 
    $xpath = new DomXPath($dom);
    $_res = $xpath->query(".//a[@class='image']");
    for($i=0; $i<$_res->length; $i++)
    {
        //$item = array("photo_url" => $_res->item($i)->firstChild->firstChild->getAttribute("src"), "url" => $_res->item($i)->getAttribute("href"));
        $preview_url = $_res->item($i)->firstChild->firstChild->getAttribute("src");
        $url = $_res->item($i)->getAttribute("href");
        $data = getProduct("http://ffffff.ru/".$url);
        $data["p_url"] = $preview_url;
        $data["u_url"] = $url;
        if($data !== false)
            $list[] = $data;
 
    }   
    $_res = $xpath->query(".//a[@class='next']");
    if($_res->length == 0)
        break;
    $href = $_res->item(0)->getAttribute('href');
}
$mysql->query("TRUNCATE c1_list");
foreach($list as $data)
{               
    $path_image = "img/c1/images/".array_pop(explode("/", $data["photo"])); 
    $path_preview = "img/c1/preview/".array_pop(explode("/", $data["p_url"])); 
    
    if(!in_array($path_preview, $photos))
    {               
        $photos[] = $path_preview;
        $content = file_get_contents("http://ffffff.ru/".$data["p_url"]);
        $mysql->query("INSERT INTO `c1_image`(`photo_url`) VALUES ('$path_preview')");
        file_put_contents($path_preview, $content);
    }
    if(!in_array($path_image, $photos))
    {
        $photos[] = $path_image;
        $content = file_get_contents("http://ffffff.ru".$data["photo"]);
        $mysql->query("INSERT INTO `c1_image`(`photo_url`) VALUES ('$path_image')");
        file_put_contents($path_image, $content);
    }
    $mysql->query("INSERT INTO `c1_list`(`code`, `oem`, `name`, `marka`, `model`, `kuzov`, `engine`, `optika`, `L_R`, `F_R`, `U_D`, `number`, `country`, `color`, `year`, `new`, `remainder`, `price`, `photo`, `photo_small`, `url`, `isPhoto`) VALUES ('{$data["code"]}','{$data["oem"]}','{$data["nazvanie_zapchasti"]}','{$data["firm"]}','{$data["model"]}','{$data["kuzov"]}','{$data["engine"]}','{$data["optics"]}','{$data["l_r"]}','{$data["f_r"]}','{$data["u_d"]}','{$data["number"]}','{$data["country"]}','{$data["color"]}','{$data["year"]}','{$data["n_o"]}','{$data["remainder"]}','{$data["price"]}','{$path_image}','{$path_preview}','{$data["u_url"]}','{$data["tolko_s_foto"]}')");
}
 
function getProduct($url)
{
    //$tableMap = array("test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test");
    $data = array();
    $html = file_get_contents($url);
    $dom = new DomDocument();
    $dom->loadHTML($html); 
    $xpath = new DomXPath($dom);
    $_res = $xpath->query(".//table[@class='object']/tbody/tr/td[@*[starts-with(name(.), 'umi:field-name')]]");
    if($_res->length == 0)
        return false;
    for($i = 0; $i < $_res->length; $i++)
        $data[$_res->item($i)->getAttribute("data-name")] = $_res->item($i)->nodeValue;
    $data["photo"] = $xpath->query(".//div[@class='image']/span/img")->item(0)->getAttribute("src");
    $data["price"] = trim(str_replace("руб", "", $xpath->query(".//div[@class='price']/span")->item(0)->nodeValue));
    
    return $data;
    
}
Буду очень благодарен вам.

Добавлено через 58 секунд
Это произошло при переходе на новую версия php 7
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2017, 18:12
Ответы с готовыми решениями:

Ошибка Strict Standards - Only variables should be passed by reference
$str = &quot; 1947, 1919 &quot;; $out = array_map('trim', explode(',',$str)); for($i=0; $i&lt;count($out);...

Strict Standards: Only variables should be passed
Люди нужна ваша помащь, я установил к себе на хостенг движок горотскова портал, он все работает но...

Only variables can be passed by reference
Здравствуйте, начал учить php, всё бы ничего, но появились косяки) Программа компилируется, но при...

Ошибка Only variables should be passed by reference
Строка $file_ext = strtolower(end(explode('.', $_FILES))); Выдает ошибку &lt;br /&gt;...

10
Эксперт PHP
3564 / 2988 / 1254
Регистрация: 01.08.2012
Сообщений: 10,248
26.01.2017, 18:20 2
Лучший ответ Сообщение было отмечено Favorskij как решение

Решение

PHP
1
2
3
4
5
$exp_image = explode("/", $data["photo"]);
$exp_preview = explode("/", $data["p_url"]);
 
$path_image = "img/c1/images/".array_pop($exp_image); 
$path_preview = "img/c1/preview/".array_pop($exp_preview);
Вроде так. Вместо 47-48 строк.
1
-19 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
26.01.2017, 18:32  [ТС] 3
Цитата Сообщение от Jodah Посмотреть сообщение
Вроде так. Вместо 47-48 строк.
Ок, ща буду проверять. Только вот много времени на это тратится, часа 2-3. Как только сразу отпишу.
0
Эксперт PHP
3564 / 2988 / 1254
Регистрация: 01.08.2012
Сообщений: 10,248
26.01.2017, 18:33 4
Лучший ответ Сообщение было отмечено Favorskij как решение

Решение

Цитата Сообщение от Favorskij Посмотреть сообщение
часа 2-3
0_о как так?
1
-19 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
26.01.2017, 18:41  [ТС] 5
Цитата Сообщение от Jodah Посмотреть сообщение
0_о как так?
Парсинг. Много миллионов страниц парсит )))

Добавлено через 2 минуты
Уже запустил с новым кодом, который вы показали. Жду что покажет. Запускаю через удаленку в консоле. В конслое, что бы ошибки были видны. Они покажут в конце работы парсинга.

Добавлено через 40 секунд
Это крон.
0
457 / 365 / 94
Регистрация: 01.05.2010
Сообщений: 1,751
26.01.2017, 18:43 6
Цитата Сообщение от Favorskij Посмотреть сообщение
Они покажут в конце работы парсинга.
Лучше переделать парсер, чтобы он отчитывался после каждой отпарсенной страницы. Опционально. Как параметр в консоле.
1
-19 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
27.01.2017, 00:08  [ТС] 7
Цитата Сообщение от Зверушь Посмотреть сообщение
Лучше переделать парсер, чтобы он отчитывался после каждой отпарсенной страницы. Опционально. Как параметр в консоле.
Согласен с вами. Учту. Но главное что бы еще больше времени не заняло, а хотя всеровно. Он парсит один раз в сутки

Добавлено через 2 часа 22 минуты
Цитата Сообщение от Jodah Посмотреть сообщение
0_о как так?
Сейчас вообще страшное выдало:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
PHP Warning:  Error while sending QUERY packet. PID=19149 in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 44
 
Warning: Error while sending QUERY packet. PID=19149 in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 44
PHP Notice:  Undefined index: photo in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 47
 
Notice: Undefined index: photo in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 47
PHP Notice:  Undefined index: code in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: code in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: oem in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: oem in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: nazvanie_zapchasti in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: nazvanie_zapchasti in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: firm in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: firm in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: model in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: model in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: kuzov in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: kuzov in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: engine in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: engine in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: optics in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: optics in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: l_r in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: l_r in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: f_r in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: f_r in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: u_d in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: u_d in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: number in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: number in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: country in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: country in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: color in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: color in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: year in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: year in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: n_o in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: n_o in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: remainder in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: remainder in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: price in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: price in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: tolko_s_foto in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: tolko_s_foto in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 67
PHP Warning: Error while sending QUERY packet.
PHP Notice: Undefined index

Может ли это быть связано с тем, что ранее на сервере стоил MySQL а сейчас MariaDB ?

Добавлено через 24 минуты
Поискав в Интернете и что то мне кажется это может быть из за max_allowed_packet. У меня VestaCP. В ней поставил max_allowed_packet 2000000М.

Потому что когда программист мне делал, он мне говорил так - Система сначало проверяет, собирает всю информацию в память (что то вроде этого, а потом все разом быстро скидывает в базу). Может быть из за того что реально было указано max_allowed_packet 1М. Вот решил поставить max_allowed_packet 2000000М.

Буду опять ждать и смотреть.

Добавлено через 2 часа 35 минут
Думаю самую первую изначальную проблему решил. Теперь будем решать проблему с объемом ))) Спасибо огромное Jodah что помог.
0
457 / 365 / 94
Регистрация: 01.05.2010
Сообщений: 1,751
27.01.2017, 12:02 8
Цитата Сообщение от Favorskij Посмотреть сообщение
PHP Notice: *Undefined index: photo in /home/admin/web/xxxxxxxx.ru/public_html/update_c1.php on line 47
Может ли это быть связано с тем, что ранее на сервере стоил MySQL а сейчас MariaDB ?
Показали бы код в строке 47 еще

Добавлено через 2 минуты
Цитата Сообщение от Favorskij Посмотреть сообщение
Потому что когда программист мне делал, он мне говорил так - Система сначало проверяет, собирает всю информацию в память (что то вроде этого, а потом все разом быстро скидывает в базу). Может быть из за того что реально было указано max_allowed_packet 1М. Вот решил поставить max_allowed_packet 2000000М.
Ну это не хорошо... Ибо жрется же память и в конце концов она может быть превышена. Надо обрабатывать пакетами.
Собрали данных строк на 500 - 1000 для вставки в базу - вставили. Собираем следующие данные. Собрали? Вставили.

Добавлено через 3 минуты
Цитата Сообщение от Зверушь Посмотреть сообщение
Показали бы код в строке 47 еще
Ну если код совпадает с кодом в первом сообщении, то... В массиве data нет элемента photo. Почему? Сложно сказать. Сделайте
PHP
1
var_dump($data);
перед 47 строкой и посмотрите что там вообще находится.

Добавлено через 2 минуты
Цитата Сообщение от Favorskij Посмотреть сообщение
Согласен с вами. Учту. Но главное что бы еще больше времени не заняло, а хотя всеровно. Он парсит один раз в сутки
Ну это же только для отладки. Вот почему я написал сделать это опционально с помощью параметра. Когда скрипт будет готов, то запускать его можно без параметра.
0
-19 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
27.01.2017, 15:29  [ТС] 9
Зверушь, В общем ошибка такая, как я показывал ранее:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
PHP Warning:  Error while sending QUERY packet. PID=24085 in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 44
 
Warning: Error while sending QUERY packet. PID=24085 in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 44
PHP Notice:  Undefined index: photo in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 47
 
Notice: Undefined index: photo in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 47
PHP Notice:  Undefined index: code in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: code in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: oem in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: oem in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: nazvanie_zapchasti in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: nazvanie_zapchasti in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: firm in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: firm in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: model in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: model in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: kuzov in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: kuzov in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: engine in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: engine in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: optics in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: optics in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: l_r in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: l_r in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: f_r in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: f_r in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: u_d in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: u_d in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: number in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: number in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: country in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: country in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: color in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: color in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: year in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: year in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: n_o in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: n_o in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: remainder in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: remainder in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: price in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: price in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
PHP Notice:  Undefined index: tolko_s_foto in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
 
Notice: Undefined index: tolko_s_foto in /home/admin/web/xxxxxxx.ru/public_html/update_c1.php on line 67
А вот сам код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php 
libxml_use_internal_errors(true);
set_time_limit(0);
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
$base_url = "http://fffffffff.ru/katalog_tovarov/";
$href = "";
define('BASEPATH', "");
$db = array();
include 'application/config/database.php';
$mysql = new mysqli($db['default']['hostname'], $db['default']['username'], $db['default']['password'], $db['default']['database']) or die('Mysql error. Check application/config/database.php');
$mysql->set_charset("utf8");
$photos = array();
$query = $mysql->query('SELECT `photo_url` FROM `c1_image`');
while($row = $query->fetch_assoc())
    $photos[] = $row["photo_url"];
$list = array();
 
while(true)
{
    $html = file_get_contents($base_url.$href);
    $dom = new DomDocument();
    $dom->loadHTML($html); 
    $xpath = new DomXPath($dom);
    $_res = $xpath->query(".//a[@class='image']");
    for($i=0; $i<$_res->length; $i++)
    {
        //$item = array("photo_url" => $_res->item($i)->firstChild->firstChild->getAttribute("src"), "url" => $_res->item($i)->getAttribute("href"));
        $preview_url = $_res->item($i)->firstChild->firstChild->getAttribute("src");
        $url = $_res->item($i)->getAttribute("href");
        $data = getProduct("http://fffffffff.ru/".$url);
        $data["p_url"] = $preview_url;
        $data["u_url"] = $url;
        if($data !== false)
            $list[] = $data;
 
    }   
    $_res = $xpath->query(".//a[@class='next']");
    if($_res->length == 0)
        break;
    $href = $_res->item(0)->getAttribute('href');
}
$mysql->query("TRUNCATE c1_list");
foreach($list as $data)
{               
    $exp_image = explode("/", $data["photo"]);
    $exp_preview = explode("/", $data["p_url"]);
 
    $path_image = "img/c1/images/".array_pop($exp_image); 
    $path_preview = "img/c1/preview/".array_pop($exp_preview);
    
    if(!in_array($path_preview, $photos))
    {               
        $photos[] = $path_preview;
        $content = file_get_contents("http://fffffffff.ru/".$data["p_url"]);
        $mysql->query("INSERT INTO `c1_image`(`photo_url`) VALUES ('$path_preview')");
        file_put_contents($path_preview, $content);
    }
    if(!in_array($path_image, $photos))
    {
        $photos[] = $path_image;
        $content = file_get_contents("http://fffffffff.ru".$data["photo"]);
        $mysql->query("INSERT INTO `c1_image`(`photo_url`) VALUES ('$path_image')");
        file_put_contents($path_image, $content);
    }
    $mysql->query("INSERT INTO `c1_list`(`code`, `oem`, `name`, `marka`, `model`, `kuzov`, `engine`, `optika`, `L_R`, `F_R`, `U_D`, `number`, `country`, `color`, `year`, `new`, `remainder`, `price`, `photo`, `photo_small`, `url`, `isPhoto`) VALUES ('{$data["code"]}','{$data["oem"]}','{$data["nazvanie_zapchasti"]}','{$data["firm"]}','{$data["model"]}','{$data["kuzov"]}','{$data["engine"]}','{$data["optics"]}','{$data["l_r"]}','{$data["f_r"]}','{$data["u_d"]}','{$data["number"]}','{$data["country"]}','{$data["color"]}','{$data["year"]}','{$data["n_o"]}','{$data["remainder"]}','{$data["price"]}','{$path_image}','{$path_preview}','{$data["u_url"]}','{$data["tolko_s_foto"]}')");
}
 
function getProduct($url)
{
    //$tableMap = array("test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test");
    $data = array();
    $html = file_get_contents($url);
    $dom = new DomDocument();
    $dom->loadHTML($html); 
    $xpath = new DomXPath($dom);
    $_res = $xpath->query(".//table[@class='object']/tbody/tr/td[@*[starts-with(name(.), 'umi:field-name')]]");
    if($_res->length == 0)
        return false;
    for($i = 0; $i < $_res->length; $i++)
        $data[$_res->item($i)->getAttribute("data-name")] = $_res->item($i)->nodeValue;
    $data["photo"] = $xpath->query(".//div[@class='image']/span/img")->item(0)->getAttribute("src");
    $data["price"] = trim(str_replace("руб", "", $xpath->query(".//div[@class='price']/span")->item(0)->nodeValue));
    
    return $data;
    
}

Я уже не знаю что делать. Весь Интернет перерыл

Добавлено через 1 минуту
Нумерация строчек кода соответствуют.

Добавлено через 2 минуты
Сейчас поставил var_dump($data);
Получилось вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$mysql->query("TRUNCATE c1_list");
foreach($list as $data)
{   
    var_dump($data);            
    $exp_image = explode("/", $data["photo"]);
    $exp_preview = explode("/", $data["p_url"]);
 
    $path_image = "img/c1/images/".array_pop($exp_image); 
    $path_preview = "img/c1/preview/".array_pop($exp_preview);
    
    if(!in_array($path_preview, $photos))
    {
Добавлено через 15 секунд
Сейчас поставил var_dump($data);
Получилось вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$mysql->query("TRUNCATE c1_list");
foreach($list as $data)
{   
    var_dump($data);            
    $exp_image = explode("/", $data["photo"]);
    $exp_preview = explode("/", $data["p_url"]);
 
    $path_image = "img/c1/images/".array_pop($exp_image); 
    $path_preview = "img/c1/preview/".array_pop($exp_preview);
    
    if(!in_array($path_preview, $photos))
    {
Добавлено через 2 минуты
Сейчас запустил вместе с var_dump($data); Жду результата.

Добавлено через 1 минуту
Цитата Сообщение от Зверушь Посмотреть сообщение
Ну это же только для отладки. Вот почему я написал сделать это опционально с помощью параметра. Когда скрипт будет готов, то запускать его можно без параметра.
Дела в том, что парсер мне писали более года назад. Все прекрасно работало, а как перешел на php7 так началось.
0
-19 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
27.01.2017, 19:13  [ТС] 10
В общем вылез вот такой масив

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
array(24) {
  ["code"]=>
  string(12) "Ц0000177223"
  ["oem"]=>
  string(6) "D-1822"
  ["nazvanie_zapchasti_string"]=>
  string(10) "дверь"
  ["nazvanie_zapchasti"]=>
  string(10) "дверь"
  ["tolko_s_cenoj"]=>
  string(4) "Да"
  ["tolko_s_foto"]=>
  string(4) "Да"
  ["firm"]=>
  string(5) "HONDA"
  ["model"]=>
  string(3) "FIT"
  ["kuzov"]=>
  string(3) "GE8"
  ["engine"]=>
  string(1) "-"
  ["optics"]=>
  string(1) "-"
  ["l_r"]=>
  string(9) "прав."
  ["f_r"]=>
  string(9) "задн."
  ["u_d"]=>
  string(10) "любой"
  ["number"]=>
  string(1) "-"
  ["country"]=>
  string(12) "ЯПОНИЯ"
  ["color"]=>
  string(26) "св. коричневый"
  ["year"]=>
  string(1) "0"
  ["n_o"]=>
  string(6) "Нет"
  ["remainder"]=>
  string(1) "1"
  ["photo"]=>
  string(91) "/images/cms/thumbs/88f/N080.jpg"
  ["price"]=>
  string(4) "3000"
  ["p_url"]=>
  string(90) "/images/cms/thumbs/88fb/N80.jpg"
  ["u_url"]=>
  string(82) "/market/honda_fit16/"
}
В общем мне кажется что что то с базой. Вообще не могу понять что за глюк. Пытаюсь засунуть опять в базу, только уже не в mariaDB а в обычную базу MySQL и выдает ошибку

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Ошибка
SQL-запрос:
 
--
-- База данных: `auto`
--
-- --------------------------------------------------------
--
-- Структура таблицы `c1_image`
--
CREATE TABLE  `c1_image` (
 
 `id` INT( 11 ) NOT NULL ,
 `photo_url` TEXT NOT NULL
) ENGINE = INNODB DEFAULT CHARSET = utf8;
 
Ответ MySQL: Документация
 
#1046 - No database selected
Че за бида, фиг его знает.

База примерное выглядит вот так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
-- phpMyAdmin SQL Dump
-- version 4.6.0
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Окт 18 2016 г., 04:41
-- Версия сервера: 5.5.44-MariaDB
-- Версия PHP: 5.6.19
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
 
--
-- База данных: `auto`
--
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `c1_image`
--
 
CREATE TABLE `c1_image` (
  `id` int(11) NOT NULL,
  `photo_url` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
--
-- Дамп данных таблицы `c1_image`
--
 
INSERT INTO `c1_image` (`id`, `photo_url`) VALUES
(31643, 'img/c1/images/N0.jpg');
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `c1_list`
--
 
CREATE TABLE `c1_list` (
  `id` int(11) NOT NULL,
  `code` text NOT NULL,
  `oem` text NOT NULL,
  `name` text NOT NULL,
  `marka` text NOT NULL,
  `model` text NOT NULL,
  `kuzov` text NOT NULL,
  `engine` text NOT NULL,
  `optika` text NOT NULL,
  `L_R` text NOT NULL,
  `F_R` text NOT NULL,
  `U_D` text NOT NULL,
  `number` text NOT NULL,
  `country` text NOT NULL,
  `color` text NOT NULL,
  `year` text NOT NULL,
  `new` text NOT NULL,
  `remainder` text NOT NULL,
  `price` int(11) NOT NULL DEFAULT '0',
  `photo` text NOT NULL,
  `photo_small` text NOT NULL,
  `url` text NOT NULL,
  `isPhoto` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
--
-- Дамп данных таблицы `c1_list`
--
 
INSERT INTO `c1_list` (`id`, `code`, `oem`, `name`, `marka`, `model`, `kuzov`, `engine`, `optika`, `L_R`, `F_R`, `U_D`, `number`, `country`, `color`, `year`, `new`, `remainder`, `price`, `photo`, `photo_small`, `url`, `isPhoto`) VALUES
(1, 'Ц0000162471', 'D-1094', 'дверь', 'NISSAN', 'AVENIR', 'W11', '-', '-', 'прав.', 'задн.', 'любой', '-', 'ЯПОНИЯ', 'серый ', '0', 'Нет', '1', 1500, 'img/c1/images/N0.jpg', 'img/c1/preview/N.jpg', '/market/za/', 'Да');
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `c2_image`
--
 
CREATE TABLE `c2_image` (
  `id` int(11) NOT NULL,
  `photo_url` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
--
-- Дамп данных таблицы `c2_image`
--
 
INSERT INTO `c2_image` (`id`, `photo_url`) VALUES
(1, '1.jpg');
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `zip_list`
--
 
CREATE TABLE `zip_list` (
  `id` text,
  `datetime` text NOT NULL,
  `code` text NOT NULL,
  `marka` text NOT NULL,
  `model` text NOT NULL,
  `modelN` text NOT NULL,
  `kuzovN` text NOT NULL,
  `engineN` text NOT NULL,
  `year` text NOT NULL,
  `s_typecurrency` text NOT NULL,
  `id_s_typecurrency` text NOT NULL,
  `F_R` text NOT NULL,
  `U_D` text NOT NULL,
  `R_L` text NOT NULL,
  `remark` text NOT NULL,
  `price` text NOT NULL,
  `N_O` text NOT NULL,
  `name` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `producer` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `producer_code` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `photo_URL` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
--
-- Дамп данных таблицы `zip_list`
--
 
INSERT INTO `zip_list` (`id`, `datetime`, `code`, `marka`, `model`, `modelN`, `kuzovN`, `engineN`, `year`, `s_typecurrency`, `id_s_typecurrency`, `F_R`, `U_D`, `R_L`, `remark`, `price`, `N_O`, `name`, `producer`, `producer_code`, `photo_URL`) VALUES
('767-Ц000114', '2016-10-10 13:10:04', '', 'TOYOTA', 'PREMIO', '', 'ZZT240', '', '', 'руб.', '4', '-', '-', '-', 'Описание:---K1', '1440', 'O', 'бензонасос', '', '', '1.jpg');
 
--
-- Индексы сохранённых таблиц
--
 
--
-- Индексы таблицы `c1_image`
--
ALTER TABLE `c1_image`
  ADD PRIMARY KEY (`id`);
 
--
-- Индексы таблицы `c1_list`
--
ALTER TABLE `c1_list`
  ADD PRIMARY KEY (`id`);
 
--
-- Индексы таблицы `c2_image`
--
ALTER TABLE `c2_image`
  ADD UNIQUE KEY `id` (`id`);
 
--
-- Индексы таблицы `zip_list`
--
ALTER TABLE `zip_list`
  ADD UNIQUE KEY `id` (`id`(255));
 
--
-- AUTO_INCREMENT для сохранённых таблиц
--
 
--
-- AUTO_INCREMENT для таблицы `c1_image`
--
ALTER TABLE `c1_image`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
--
-- AUTO_INCREMENT для таблицы `c1_list`
--
ALTER TABLE `c1_list`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
--
-- AUTO_INCREMENT для таблицы `c2_image`
--
ALTER TABLE `c2_image`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
0
Эксперт PHP
2974 / 2497 / 1176
Регистрация: 14.05.2014
Сообщений: 7,059
Записей в блоге: 1
27.01.2017, 19:37 11
Цитата Сообщение от Favorskij Посмотреть сообщение
No database selected
Не выбрана база данных.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2017, 19:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Strict Standards: ошибка
на хосте работал прекрасно скрипт каталога.когда перенес на локалку (xampp), то выдает ошибки...

После установки ошибки Strict Standards
После установки появляются ошибки Можно ли переустановить Joomla?

Strict Standards: Non-static method JLoader:
Таких ошибок много на странице. Как решить? Пробовал поменять PHP на старую версию 5.2.17 - не...

ОШИБКА Strict Standards: Non-static method Configure::getInstance()
Уважаемые форумчане необходима помощь в решении проблем (возникли при переносе сайта на др...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.