首页 经验

输入是这样的字符串,转成表格 <p> 转table

时间: 2024-09-20 09:02:40

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)


为了将你提供的这种 HTML <p> 包含的表格格式转换为标准的 HTML <table> 格式,可以用 JavaScript 或 PHP 来处理。下面分别展示这两种语言的实现方法。


使用 JavaScript 实现


假设你在网页中有这样一段带 <p> 标签的 HTML,下面的 JavaScript 可以解析并生成一个 <table>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Table Conversion</title>
</head>
<body>

<p>| \( c_1 \) | \( c_2 \) | \( t \) | 输出 \( t' \) |</p>
<p>|----------|----------|----------|-------------|</p>
<p>|0|0|0|0|</p>
<p>|0|0|1|1|</p>
<p>|0|1|0|0|</p>
<p>|0|1|1|1|</p>
<p>|1|0|0|0|</p>
<p>|1|0|1|1|</p>
<p>|1|1|0|1|</p>
<p>|1|1|1|0|</p>

<script>
// 获取所有的<p>标签
const paragraphs = document.querySelectorAll('p');

// 初始化一个空的表格HTML字符串
let table = '<table border="1">';

// 遍历每个<p>标签的内容
paragraphs.forEach((p, index) => {
    // 获取当前<p>的内容,去掉开头和结尾的 '|' 符号
    const row = p.textContent.trim().slice(1, -1);

    // 如果是第二行,跳过(忽略分隔符)
    if (index === 1) return;

    // 按 '|' 分割单元格内容
    const cells = row.split('|').map(cell => cell.trim());

    // 第一行是表头
    if (index === 0) {
        table += '<tr>';
        cells.forEach(cell => {
            table += <th>${cell}</th>;
        });
        table += '</tr>';
    } else {
        // 其余行是表格内容
        table += '<tr>';
        cells.forEach(cell => {
            table += <td>${cell}</td>;
        });
        table += '</tr>';
    }
});

// 关闭表格标签
table += '</table>';

// 将生成的表格插入到页面中
document.body.innerHTML += table;
</script>

</body>
</html>



使用 PHP 实现


如果你想用 PHP 处理这种 HTML 片段并生成表格,可以按以下方式处理:


<?php
// 输入字符串(模拟从HTML中获取的<p>标签内容)
$input = [
    "| \\( c_1 \\) | \\( c_2 \\) | \\( t \\) | 输出 \\( t&#39; \\) |",
    "|----------|----------|----------|-------------|",
    "|0|0|0|0|",
    "|0|0|1|1|",
    "|0|1|0|0|",
    "|0|1|1|1|",
    "|1|0|0|0|",
    "|1|0|1|1|",
    "|1|1|0|1|",
    "|1|1|1|0|"
];

// 开始生成表格
echo '<table border="1">';

foreach ($input as $index => $row) {
    // 去掉开头和结尾的 '|' 符号
    $row = trim($row, '|');

    // 忽略包含"-"的行(分隔符)
    if (strpos($row, '----') !== false) {
        continue;
    }

    // 按 '|' 分割单元格内容
    $cells = array_map('trim', explode('|', $row));

    // 第一行是表头,用 <th> 标签
    if ($index == 0) {
        echo '<tr>';
        foreach ($cells as $cell) {
            echo '<th>' . htmlspecialchars($cell) . '</th>';
        }
        echo '</tr>';
    } else {
        // 其余行是数据,用 <td> 标签
        echo '<tr>';
        foreach ($cells as $cell) {
            echo '<td>' . htmlspecialchars($cell) . '</td>';
        }
        echo '</tr>';
    }
}

echo '</table>';
?>


解释

1. 输入处理:我们先获取所有 <p> 标签内容,去掉行首行尾的 | 符号,再按 | 分割成单元格。

2. 表格结构:第一行用 <th> 标签生成表头,其余行使用 <td> 生成表格的内容行。

3. 分隔线忽略:第二行的分隔符 |-----| 行被忽略,不用于生成表格。

  

这段代码可以直接运行,并会将输入的字符串转换为 HTML <table>


上一个 领益智造 文章列表

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号