ORIGAMMI

Рейтинг
109
Регистрация
05.03.2011

А если этих Элементов несколько будет?

пример:


Array
(
[0] => Array
(
[text] => 1-к квартира, 43 м², 4/10 эт.
[link] => https://www.avito.ru/penza/kvartiry/1-k_kvartira_43_m_410_et._548929607
)

[1] => Array
(
[text] => Комната 13 м² в 5-к, 3/4 эт.
[link] => https://www.avito.ru/penza/komnaty/komnata_13_m_v_5-k_34_et._846776782
)

[2] => Array
(
[text] => 1-к квартира, 27 м², 9/10 эт.
[link] => https://www.avito.ru/penza/kvartiry/1-k_kvartira_27_m_910_et._790457909
)

// И ещё 48
)

Как записать в базу такое

Array ( [0] => Тормозные колодки: БМВ, 1 (E81) )

Сам код:


$headlines = array();
foreach($html->find('h1') as $header) {
$headlines[] = $header->plaintext;
}
print_r($headlines);
$query =("INSERT INTO'marka'('name')VALUES('$headlines,')");
echo $query

ошибка:

Array ( [0] => Тормозные колодки: БМВ, 1 (E81) )

Notice: Array to string conversion in W:\xampp\htdocs\newsite\index.php on line 30

INSERT INTO'marka'('name')VALUES('Array,')

Что я делаю не так ?

Вставляйте в текст свою ссылку. Или поставьте скрипт который при отдаче контента прикрепляет ссылку. Я вас уверяю текста там парсят и не проверяют. А будет ссылка пусть даже неактивная, гугл поймет. А и для вас это сигнал..значит ваш сайт проигрывает гс. Просто так не ставят выше. При написании новой статьи сразу индексируйте ее через вебмастер.

ДА фреймворк не плохой, но его нужно устанавливать. А по-моему на обычных хостинг (не сервак) хрен поставишь. Или я туплю? Залить его в корневую папку вместе с парсером?

Давайте разберем на конкретном примере.

На странице есть таблица там стоят цены.


<td class="cost ttip">
6,89
</td>

Мне их нужно все спарсить и аккуранто записать в базу.


<?php
//подгружаем библиотеку
require 'simple_html_dom.php';
//подключаем базу
$dbn = mysql_connect('localhost', 'user', 'password');
mysql_select_db('parser', $dbn);
mysql_query('SET NAMES utf8');
//создаём новый объект
$html = new simple_html_dom();
//загружаем в него данные
$html = file_get_html('http://site.ru');
//Ищем все <td> в <table> где class = cost ttip
$es = $html->find('table.cost ttip td');
{
if($es->value == '') continue;
$insert .= '('.$es->value.', \''.$es->plaintext.'\'),';

}
//записываем в базу
$query = $db->prepare('INSERT INTO tovar SET price=$es');
//освобождаем ресурсы
$html->clear();
unset($html);
?>



---------- Добавлено 30.04.2017 в 23:17 ----------

Почему не работает ?

Делов для профи нет, а для меня еще все сложно.

Вот есть такой код, не совсем понимаю что он делает. Хочу переработать его.


require ('simple_html_dom.php');

$dbn = mysql_connect('localhost', 'user', 'password');
mysql_select_db('parser', $dbn);
mysql_query('SET NAMES utf8');

$brands = array();

$html = str_get_html(file_get_contents('http://url.kz'));
$insert = 'INSERT INTO kolesa_brands (id, name) VALUES ';
$select = $html->find('select[id=auto.car.mm_0]', 0);
foreach($select->find('option') as $opt)
{
if($opt->value == '') continue;
$insert .= '('.$opt->value.', \''.$opt->plaintext.'\'),';
$brands[$opt->value] = $opt->plaintext;
}
mysql_query(rtrim($insert, ','));

т.е я так понимаю что я ищу место 'option' и присваиваю переменной $opt,,

далее если $opt имеет значение, то продолжаю. А вот это место не понимаю.


$insert .= '('.$opt->value.', \''.$opt->plaintext.'\'),';
$brands[$opt->value] = $opt->plaintext;
}

Datacol не подайдет, суть в том чтоб сделать парсер, который по крону будет записывать в базу цены и выводить их на сайте.

Получается все работает ? Что делать дальше?

картинки прописываются :<img src="http://site.com/templates/public/casino/images/tbuk_John_Barnes_1001x677_9.jpg" alt="">

Может их нужно по другому вставлять? писать полный путь /var/www/public_html/...?

---------- Добавлено 06.03.2016 в 14:19 ----------

Поставил

RewriteRule .*\.(jpg|gif|png|css|zip|doc|php|js)$ - [L]

в htaccess и все заработало!!!

Кто может пояснить почему?

Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration, referer: http://www.site.com

Как запустить RewriteEngine?

DenisVS:
Это не простой вариант, а отложенный на потом гемморой.
Панели нужны клиентам хостингов, которые не собираются лезть в настройки никогда, либо админам для ускорения однотипных задач при полном понимании процессов.

Уважаемый DenisVS, в двух словах если возможно расскажите с чем связан гемморой.

Фактически мне нужно будет вести на vps 3-4 сайта, я их захощу с помощью панели веста и норм.

Какой геморой еще может быть? Обновление php?

Всего: 458