- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Новичок в php.
Есть таблица html. Необходимо перенести данные в БД mysql в соответствии со штатными ячейками (td.tr)
Три колонки и около тысячи строчек. В одной колонке текст с тегами и знаками препинания нужно сохранить как есть.
Пробовал конвертировать в EXCEL по рекомендациям из инета..
header('Content-Type: application/vnd.ms-excel');
header('Content-type: application/x-msexcel');
$fileName = 'test.xls';
header("Content-Disposition: attachment; filename=$fileName");
Дробит ячейки не только по штатным тегам таблицы, а ещё по строчкам или тегам <br>.. так и не понял логики работы такого скрпта.
Онлайн-сервисы предлагающие конвертировать html в csv тоже не дали нужного результата, буржуйские половина теги в тексте убирают, другие кодировку не учитывают.. из русских ничего не нашёл работоспособного.
Как правильнее поступить? Может есть накатанные решения?
Может и не нужно конвертировать из сразу скриптом и ячеек таблицы в БД заностить как-то можно хитро?
Нужен пхп скрипт, который регекспом вытащит нужные данные и запихнет в базу, также можно xpath попробывать.
Разбейте на этапы.
Разобрать по ячейкам получается?
Разобрать по ячейкам получается?
А чем разобрать?
В самой таблице html всё ровно разобрано. Все ячейки на месте.
Я к тому, получается ли выделить данные из произвольной ячейки?
Плохо понимаю вопрос, что значит выделить..
---------- Добавлено 29.09.2014 в 22:55 ----------
вытащит нужные данные
У меня все данные нужные.
Столбцы пометил в тегах td идентификатором, когда обрабатывал таблицу.
Структура такая, три столбца:
<tr><td id=brand>....</td><td id=model>....</td><td id=opisanie>....</td></tr>
и таких строчек много.
В ячейках "opisanie" текст с тегами и ссылками.
Как правильно написать скрипт?
fordzon, необходимо с помощью регулярных выражений выделить в массив все строки (<tr..)
затем циклом идти по этому массиву и разбить каждую строку на 3 ячейки (также с помощью регулярных выражений) и insert-ить это дело уже в базу
Как бы специальные библиотеки позволяют без велосипедирования.
С библиотеками не умею работать.
А с массивами уже получается.
Сделал три массива регулярками
$content=preg_match_all('/<td id=brand>(.+?)<\/td>|sUSi/', $content, $arr1);
$content=preg_match_all('/<td id=models>(.+?)<\/td>|sUSi/', $content, $arr2);
$content=preg_match_all('/<td id=opisanie>(.+?)<\/td>|sUSi/', $content, $arr3);
Всё нормально, данные разделились.
Ну и тремя циклами foreach инсертить в БД. Должно получиться.
Спасибо!
Экселем разберите...
Экселем разберите...
Экселем не получалось, по строчкам ячейки дробит, а мне по штатным тегам td нужно.
Всё оказалось просто.
$content1=preg_match_all('/<td id=brand>(.+?)<\/td>|sUSi/', $content, $arr1);
$content2=preg_match_all('/<td id=models>(.+?)<\/td>|sUSi/', $content, $arr2);
$content3=preg_match_all('/<td id=over>(.+?)<\/td>|sUSi/', $content, $arr3);
$ar1= $arr1[1];
$ar2= $arr2[1];
$ar3= $arr3[1];
for($i = 1; $i < 1000; $i++)
{
$result = mysql_query ("INSERT INTO tab1 (brand,models,over) VALUES ('$ar1[$i]', '$ar2[$i]','$ar3[$i]')");
}