Home >Backend Development >PHP Problem >How to convert php table content to array

How to convert php table content to array

藏色散人
藏色散人Original
2021-10-14 09:33:132652browse

How to convert php table content to array: 1. Create a PHP sample file; 2. Convert each row and column of the HTML table to an array through the "function tdToArray($table) {...}" method That’s it.

How to convert php table content to array

The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer

How to convert the content of php table to an array?

php Regularly matches the table in the html of the web page and converts the content into an array

When connecting to JD.com vop, when JD.com returns the specification attribute, the style in html format is returned. For example

$date='
<table cellpadding="0" cellspacing="1" width="100%"border="0" class="Ptable">
         <tr>
            <th class="tdTitle" colspan="2">主体
           </th>
         <tr>
         <tr>
              <td class="tdTitle">品牌
              </td>
              <td>好孩子
              </td>
         </tr>
         <tr>
             <td class="tdTitle">主材质
             </td>
             <td>PP
             </td>
         </tr>
         <tr>
                <td class="tdTitle">规格
                </td>
                <td>800mm*445mm*225
                </td>
        </tr>
        </table>&#39;;

the above table, the preview is

The next step is to extract, the extraction idea is to use regular expressions to convert f5d188ed2c074f8b944552db028f98a1b6c5a531a458a2e790c1fd6421739d1c , a34de1251f0d9fe1e645927f19a896e8 and other tags are deleted first.

Paste the code first

//php采集table表格数据(将HTML表格的每行每列转为数组)
function tdToArray($table) {
    $table = preg_replace("&#39;<table[^>]*?>&#39;si","",$table);
    $table = preg_replace("&#39;<tr[^>]*?>&#39;si","",$table);
    $table = preg_replace("&#39;<td[^>]*?>&#39;si","",$table);
    $table = str_replace("</tr>","{tr}",$table);
    $table = str_replace("</td>","{td}",$table);
    //去掉 HTML 标记
    $table = preg_replace("&#39;<[/!]*?[^<>]*?>&#39;si","",$table);
    //去掉空白字符
    $table = preg_replace("&#39;([rn])[s]+&#39;","",$table);
    $table = str_replace(" ","",$table);
    $table = str_replace(" ","",$table);
    $table = explode(&#39;{tr}&#39;, $table);
    array_pop($table);
    foreach ($table as $key=>$tr) {      // 自己可添加对应的替换
        $td = explode(&#39;{td}&#39;, $tr);
        array_pop($td);
        $td_array[] = $td;
    }
    return $td_array;
}

Use debug to go through the process and observe each step. I won’t go into details, but put a variable of the last $table

The variables after array_pop

are as follows

The \r\n above is to distinguish the added line breaks, which can be replaced by str_replace. In addition, the title can also be replaced, as follows

Final effect

## Recommended learning: "

PHP Video Tutorial

The above is the detailed content of How to convert php table content to array. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn