2016-10-26 4 views
0

Здравствуйте, я хочу ВЗ извлекать текст и вставить их в таблицу БД это код описания продуктазначения экстракта (текст) из HTML таблицы с помощью PHP MySQL

> <table class="AttrDTable"><[email protected]><tr 
> class="AttrDRow"><td class="AttrDTypeName">Cod produs (Part number) 
> original</td><td class="AttrDValue">5014702023309</td></tr><tr 
> class="AttrDAltRow"><td class="AttrDTypeName">Nume produs</td><td 
> class="AttrDValue">Pricing gun, single row (8 numeric characters), 
> black</td></tr><tr class="AttrDRow"><td 
> class="AttrDTypeName">Producator</td><td class="AttrDValue">Avery 
> Zweckform</td></tr><tr class="AttrDAltRow"><td 
> class="AttrDTypeName">Clasa produsului</td><td 
> class="AttrDValue">Aparatură pentru 
> birou</td></tr></td></tr><[email protected]></table> 

Я заинтересован только значения из <td class="AttrDTypeName"> и <td class="AttrDValue"> эти значения войдут в базу данных

Я сделал для HTML с <br> и <strong> значениями это код

$rand=explode("&lt;br&gt;",$descriere); 
    for ($i=0;$i<count($rand);$i++) 
     if ($rand[$i]!='') 
     { 
      $element=explode(": &lt;/strong&gt;",$rand[$i]); 
      $element[0]=str_replace("&lt;strong&gt;","",$element[0]); 
      $element[1]=str_replace("&nbsp;","",$element[1]); 

      echo $element[0]."---".$element[1]."##"."<br>"; 


      $exista=mysqli_query($conexiune, "SELECT * FROM oc_attribute_description WHERE name='".$element[0]."'") or die(mysqli_error($conexiune)); 
      if (!mysqli_num_rows($exista)) 
       { 
        mysqli_query($conexiune, "INSERT INTO oc_attribute (attribute_group_id) VALUES ('4')"); 
        $id_attr=mysqli_insert_id($conexiune); 
        //inserez descriere atribut nou in tabela 
        mysqli_query($conexiune, "INSERT INTO oc_attribute_description (attribute_id, language_id, name) VALUES ('".$id_attr."', '2', '".$element[0]."')") or die(mysqli_error($conexiune)); 

       } 
      $atribut=mysqli_fetch_array(mysqli_query($conexiune, "SELECT attribute_id FROM oc_attribute_description WHERE name='".$element[0]."'")); 

      $exista2=mysqli_query($conexiune, "SELECT * FROM oc_product_attribute WHERE product_id='".$product_id."' AND attribute_id='".$atribut[0]."'") or die(mysqli_error($conexiune)); 
      if (!mysqli_num_rows($exista2)) 
       { 
        mysqli_query($conexiune, "INSERT INTO oc_product_attribute (product_id, attribute_id, language_id, text) VALUES ('".$product_id."', '".$atribut[0]."', '2', '".$element[1]."')") or die(mysqli_error($conexiune)); 

       } 
      else 
       mysqli_query($conexiune, "UPDATE oc_product_attribute SET text='".$element[1]."' WHERE product_id='".$product_id."' AND attribute_id='".$atribut[0]."'") or die(mysqli_error($conexiune)); 
     } 

Thanks

+0

Проверьте https://github.com/sunra/php-simple-html-dom-parser. Похоже, это поможет вам здесь. – Teson

ответ

0

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

include 'simple_html_dom.php'; 
$html = new simple_html_dom(); 
$html = file_get_html("uss.html"); 
$data = $html->find('td[class=AttrDTypeName]'); 
$data1 = $html->find('td[class=AttrDValue]'); 

echo "Your data from, td class="AttrDTypeName"<br><br>"; 

foreach($data as $val) 
{ 
    echo $val->innertext."<br><br>"; 
} 

echo "Your data from, td class="AttrDValue"<br><br>" 

foreach($data1 as $val1) 
{ 
    echo $val1->innertext."<br><br>"; 
} 
+0

привет, спасибо за ваш ответ, мои данные находятся в таблице базы данных в столбце «Описание», а val и val1, которые я извлекаю, я хочу вставить их в другую таблицу с атрибутом с nam = val value = val1 – coZmoXimo

+0

@coZmoXimo У вас есть хотите анализировать данные из 'Описание' и вставлять их в другую таблицу, правильно? – Kumar

+0

да, но описание столбца также находится в таблице, они находятся в одной базе данных – coZmoXimo

 Смежные вопросы

  • Нет связанных вопросов^_^