Хочу написать код для выбора электродвигателя по параметрам (это могут быть как размеры вала, посадочного места, так допустим скорость вращения, мощность и т.д.). Но это не имеет значения. Просто при реализации столкнулся с тем, что для этого мне нужно создать базу данных, которая в свою очередь будет состоять из данных которые я должен получить из десятка таблиц. В свою очередь, таблицы разные: с различными величинами и количеством столбцов. Поэтому, я ничего лучше не могу придумать, как каждый раз изменять руками количество значений вносимых в таблицу MySql в коде: PHP: <?php require_once 'phpQuery.php'; $link = mysqli_connect('localhost:3306', 'root', '', 'motor'); $str = file_get_contents('tab.html'); $pq = phpQuery::newDocument($str); $links = $pq->find('td'); $i=0; foreach ($links as $l) { $pqLink = pq($l); //pq делает объект phpQuery $s = $pqLink->text(); if ($i==10) { mysqli_query($link, "insert into motor5 (`1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`) values('$a', '$b','$c','$d','$e','$f','$g','$h','$j','$k')"); $i=0; } if ($i==0) $a=$s; if ($i==1) $b=$s; if ($i==2) $c=$s; if ($i==3) $d=$s; if ($i==4) $e=$s; if ($i==5) $f=$s; if ($i==6) $g=$s; if ($i==7) $h=$s; if ($i==8) $j=$s; if ($i==9) $k=$s; $i++; } ?> Народ извините за корявый код. Кто что посоветует- может есть бесплатные готовые решения для парсинга и вноса в базу данных таблиц? Может можно как-то улучшить код? С радостью прийму любой коментарий. Ах да, если что, я использовал фреймворк phpQuery для парсинга.
давай с самого начала. Код для выбора электродвигателей - это фильтры в интернет магазине? Из десятка таблиц - что за таблицы? эксель? Развернуто, что хочешь сделать и что для этого есть, кроме кода.
--- Добавлено --- 1.Нет это не интернет маназин, просто форма в которую вводишь известные тебе параметры, а на выходе получаешь список подходящих электродвигателей. 2.Таблицы- html код из различных справочных статей. 3.Короче на входе html, на выходе- текст ячеек записанный в базу данных.
Совершенно верно. Прийду домой вечером, набросаю пример html таблицы, пример формы для заполнения, чтоб нагдяднее было
В чем заключается кража контента? Таблицы совершенно одинаковые на всех сайтах. Это справочная литература. Просто html формат общедоступен, а допустим из pdf я не знаю как вычленить текст, значения и внести в базу данных (только руками)
Народ конкретизирую задачу, если кого заинтересует. Вот две таблицы: У них различное количество столбцов и различные значения в столбцах. Код таблиц: HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <style> table, td { border: 1px solid black; border-collapse: collapse; } </style> <table class="table1" > <tr> <td colspan="2">Марка двигателя</td> <td>Мощн <br>кВт</td> <td>Скольж<br>% </td> <td>КПД<br>% </td> <td>Коэф. <br>мощн</td> <td>Ммакс/<br>Mн </td> <td>Мп/<br>Мн</td> <td>Ммин/<br>Мн </td> <td>Iп/<br>Iн</td> </tr> <tr> <td>4АА56А2 У3 </td> <td>4ААМ56А2</td> <td>0,18</td> <td>8</td> <td>66</td> <td>0,76</td> <td>2,2</td> <td>2</td> <td>1,2</td> <td>5</td> </tr> <tr> <td>4АА56В2 У3 </td> <td>4ААМ56В2 </td> <td>0,25</td> <td>8</td> <td>68</td> <td>0,77</td> <td>2,2</td> <td>2</td> <td>1,2</td> <td>5</td> </tr> <tr> <td>4А63А2 У3 </td> <td>4АМ63А2 </td> <td>0,37</td> <td>8,3</td> <td>70</td> <td>0,86</td> <td>2,2</td> <td>2</td> <td>1,2</td> <td>5</td> </tr> <tr> <td>4А63В2 У3 </td> <td>4АМ63В2 </td> <td>0,55</td> <td>8,5</td> <td>73</td> <td>0,86</td> <td>2,2</td> <td>2</td> <td>1,2</td> <td>5</td> </tr> </table> </body> </html> B 2-я: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=`device-width`, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <style> table, td { border: 1px solid black; border-collapse: collapse; } </style> <table> <tr> <td colspan="2" rowspan="2">Марка двигателя</td> <td rowspan="2">Число <br>полюсов</td> <td colspan="4">Габаритные <br>размеры, мм </td> <td colspan="7">Установочные и присоединительные <br>размеры, мм </td> <td rowspan="2">Масса, кг</td> </tr> <tr> <td>l30</td> <td>h31 </td> <td>d30</td> <td>b31</td> <td>l1 </td> <td>l10</td> <td>l31</td> <td>d1</td> <td>d10</td> <td>b10</td> <td>h </td> </tr> <tr> <td>4АА50 </td> <td>4ААМ50 </td> <td>2, 4</td> <td>176</td> <td>142</td> <td>112</td> <td> </td> <td>20</td> <td>63</td> <td>32</td> <td>9</td> <td>5,8</td> <td>80</td> <td>50</td> <td>3,3/3</td> </tr> <tr> <td>4АА56 </td> <td>4ААМ56 </td> <td>2, 4 </td> <td>194</td> <td>152</td> <td>128</td> <td> </td> <td>23</td> <td>71</td> <td>36</td> <td>11</td> <td>5,8</td> <td>90</td> <td>56</td> <td>4,5/4,3</td> </tr> <tr> <td>4АА63 </td> <td>4ААМ63 </td> <td>2, 4, 6 </td> <td>216</td> <td>164</td> <td>138</td> <td> </td> <td>30</td> <td>80</td> <td>40</td> <td>14</td> <td>7</td> <td>100</td> <td>63</td> <td>6,3/6,1</td> </tr> <tr> <td>4А 71 </td> <td>4АМ 71 </td> <td>2, 4, 6, 8 </td> <td>285</td> <td>201</td> <td>170</td> <td> </td> <td>40</td> <td>90</td> <td>45</td> <td>19</td> <td>7</td> <td>112</td> <td>71</td> <td>15,1/14</td> </tr> </table> </body> </html> Как их попроще отпарсить?
https://github.com/symfony/dom-crawler --- Добавлено --- https://symfony.com/doc/current/components/dom_crawler.html