Здравствуйте! нужна Ваша помощь:
Задача: необходимо разместить кнопку поиска запчастей на сайте, файл с запчастями находиться в корне сайта и имеет следующий вид:
ford.txt
Отправлено 06 Октябрь 2015 - 23:00
Здравствуйте! нужна Ваша помощь:
Задача: необходимо разместить кнопку поиска запчастей на сайте, файл с запчастями находиться в корне сайта и имеет следующий вид:
ford.txt
Отправлено 07 Октябрь 2015 - 01:24
<? error_reporting(E_ALL & ~E_NOTICE); define('COLUMN_SEPARATOR', '|'); $fileName = __DIR__ . DIRECTORY_SEPARATOR . 'ford.txt'; if ($_REQUEST['search']) { $arData = array(); array_walk(file($fileName, FILE_IGNORE_NEW_LINES), function($arItem) use (&$arData) { $row = explode(COLUMN_SEPARATOR, $arItem); $arData[$row[0]] = $row; }); $arResult = ($arData[$_REQUEST['number']]) ? $arData[$_REQUEST['number']] : false; } ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <style type="text/css"> table { border-collapse: collapse; } td { border: 1px solid black; padding: 3px; } </style> </head> <body> <form action=""> <input type="text" name="number" value="" /> <input type="submit" name="search" value="Найти" /> </form> <? if (isset($arResult)): ?> <? if (!$arResult): ?> Ничего не найдено <? elseif (count($arResult) <= 2): ?> Cтоимость запчасти: <?=$arResult[1]?> руб. <? else: ?> <table> <tr> <td>FINIS: <?=$arResult[0]?></td> <td>Инженерный номер: <?=$arResult[2]?></td> <td>Описание: <?=$arResult[3]?></td> <td>Цена: <?=$arResult[1]?></td> </tr> </table> <? endif ?> <? endif ?> </body>
Разместил код на сайте:
http://www.chipford.ru/zap.php
Файл ford.txt положил в корень сайта:
http://www.chipford.ru/ford.txt
При поиске: 0000006
ничего не выдаёт(((
Подскажите пожалуйста куда копать, спасибо
Отправлено 07 Октябрь 2015 - 03:01
уменьшил файл до 10 строк, теперь пишет: ничего не найдено
Видимо файл большой, какой интересно лимит памяти...
Отправлено 07 Октябрь 2015 - 05:53
<? error_reporting(E_ALL & ~E_NOTICE); define('COLUMN_SEPARATOR', '|'); $fileName = __DIR__ . DIRECTORY_SEPARATOR . 'ford.txt'; if ($_REQUEST['search']) { $arResult = false; $firstLine = true; $handle = @fopen($fileName, "r"); if ($handle) { while (($arItem = fgetcsv($handle, 4096, COLUMN_SEPARATOR)) !== false) { // fix file UTF-8 BOM if ($firstLine) { $arItem[0] = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $arItem[0]); $firstLine = false; } if ($arItem[0] == $_REQUEST['number']) { $arResult = $arItem; break; } } fclose($handle); } } ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <style type="text/css"> table { border-collapse: collapse; } td { border: 1px solid black; padding: 3px; } </style> </head> <body> <form action=""> <input type="text" name="number" value="" /> <input type="submit" name="search" value="Найти" /> </form> <? if (isset($arResult)): ?> <? if (!$arResult): ?> Ничего не найдено <? elseif (count($arResult) <= 2): ?> Cтоимость запчасти: <?=$arResult[1]?> руб. <? else: ?> <table> <tr> <td>FINIS: <?=$arResult[0]?></td> <td>Инженерный номер: <?=$arResult[2]?></td> <td>Описание: <?=$arResult[3]?></td> <td>Цена: <?=$arResult[1]?></td> </tr> </table> <? endif ?> <? endif ?> </body> </html>
Это рабочий код.
У меня возникли ещё пару идей/вопросов.
Прайс-листы поставщик шлёт в текстовом формате с расширением .txt
содержимое файла: финис и цена без НДС
0101940|4902,91
0102056|1361,25
0102089|5464,43
0102121|2103,45
0102125|2103,45
0102306|6082,25
0115960|151,52
0116410|247,84
0120437|1210,93
...
прайсы обновляются как правило ежемесячно, хотя бывает и несколько раз в неделю
я сейчас начнут трудится добавлять: инженерный номер и описание
как бы мне сделать лучше, чтобы инженерный номер и описание каждый раз не добавлять, а каким то образом менять (заменять при импорте только колонку с ценами, тут тоже много подводных камней, а если к примеру добавится номер в середине текста, то цены и финис не будут совпадать...
может как-то сделать импорт из двух файлов один файл в котором будет: инженерный номер и описание к запасной части, а второй файл обновляемый без инженерного номера и с актуальной ценой...
+ как добавить НДС 18% к сумме
+ как можно добавить информацию в виде таблицы истории поиска запчастей: последние 10 запросов к примеру...
Спасибо
Отправлено 07 Октябрь 2015 - 07:19
Что бы решить все эти вопросы и еще те, которые будут возникать в будущем, надо использовать базу данных.
И добавлять сможешь, и редактировать, и изменять.
Достаточно просто будет сохранять историю поиска, также для конкретного юзера свою историю.
Думаю можно связаться с поставщиком и попросить, что бы прайсы высылал в xml
Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.
Отправлено 07 Октябрь 2015 - 17:19
Поддержу. Переносите в базу. Скорость поиска наверняка увеличится, причем значительно. Можно и без xml. Во-первых, достаточно конвертеров. Во-вторых, можно в том же Экселе пересохранять в csv и импортировать в этом формате.
Из txt импорт тоже сделать не трудно. Только я не понял, как вы собираетесь определять значения доп. полей, которых нет в файле.
Название темы | Автор | Статистика | Последнее сообщение |
---|
Парсинг title и description конкурентовАвтор Vmir, 12 ноя 2019 В: Продвижение и оптимизация сайтов (SEO) → Программы и сервисы для продвижения |
|
![]()
|
Teoseo - Парсинг, Наполнение, АвтоматизацияАвтор teoseo, 07 окт 2019 В: Работа для вебмастера → SEO-услуги |
|
![]()
|
Как закрыть парсинг для Screaming Frog в robots.txt или в .htaccessАвтор Olya23, 08 мар 2019 В: Продвижение и оптимизация сайтов (SEO) → Вопросы по SEO от новичков |
|
![]()
|
Ядро Пузатское | Составление семантики: парсинг, чистка, группировка, тзАвтор unikvseru, 31 окт 2017 В: Продвижение и оптимизация сайтов (SEO) → Поисковая оптимизация |
|
![]()
|
Капча, парсинг, PDF и WordpressАвтор Sosnovskij, 27 сен 2017 В: Создание сайтов: веб-технологии и программирование → Разное |
|
![]()
|
![]() |
BLIK
1-й за Ноябрь
Очков активности: 672 ![]() |
BLIK
Очков активности: 63
Вне конкурса за определение пользователя месяца
Rodiola (rukodelkovo.ru)
Очков активности: 15
Вне конкурса за определение пользователя месяца
Victim
Очков активности: 15
0 тем, 5 сообщений, 2 балла репутации
kolver
Очков активности: 15
1 тема, 7 сообщений, 1 балл репутации
MattCutts (dmitrylee.ru)
Очков активности: 9
Вне конкурса за определение пользователя месяца
HITMAN84
Очков активности: 7.5
1 тема, 2 сообщения, 1 балл репутации
iiccarus
Очков активности: 6
1 тема, 1 сообщение, 1 балл репутации
morvad24
Очков активности: 6
1 тема, 1 сообщение, 1 балл репутации
TimurR
Очков активности: 6
1 тема, 1 сообщение, 1 балл репутации
Vmir
Очков активности: 6
0 тем, 2 сообщения, 2 балла репутации
MattCutts - 06 дек 2019 14:55
AnnaYa - 06 дек 2019 06:33
rest2011 - 05 дек 2019 17:59
Sitilin - 05 дек 2019 13:00
Zevss - 05 дек 2019 12:59
BLIK
Репутация: 1049
ShowPrint
(ShowPrint.ru)
Репутация: 984
Evgeniy3200
(everest-tour.by)
Репутация: 492
magnet
(rbfxdirect.com)
Репутация: 372
TimurR
Репутация: 273
r0mZet
(rz-style.ru)
Репутация: 262
GVA
Репутация: 205
fedornabilkin
(plohoneponyal.ru)
Репутация: 203
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: MasterWebs.ru