gpt4 book ai didi

php - 使用 simple_html_dom 解析 HTML 表格

转载 作者:行者123 更新时间:2023-11-29 07:36:07 27 4
gpt4 key购买 nike

我正在抓取以下 html 表格:

<table>
<tr>
<td class="Name">A</td>
<td class="S1">5</td>
<td class="S2">6</td>
</tr>
</table>

我的目标是使用 Html_simple_dom 来解析数据并将值输入到 MySQL 数据库中。这是我到目前为止所拥有的:

<?php
include('../simple_html_dom.php');
include('dbconnect.php');
$html = file_get_html('url');
$table = $html->find('table');
foreach ($table->find('tr') as $row) {
foreach ($row->find('td[class=Name]') as $cell) {
$name = $cell->plaintext;
}
}

我遇到的问题是我的 $name 变量实际上是一个数组。如果我改为这样做,我将陷入重复:

foreach ($table->find('tr') as $row) {
foreach ($row->find('td[class=Name]') as $cell) {
}
$name = $cell->plaintext;
}

我的最终目标是像这样的 MySQL 查询:

$sql = Insert into ScoreTable (Score1, Score2)
Values ($S1, $S2)
Where PName = $Name

但是,当我“查找”时,我无法将得到的数组值分开,我什至无法将 html 元素隔离到变量中。我哪里错了?

编辑:确定我的目标是什么。

最佳答案

如果只需要一个值,则不需要使用 cicly。您可以获得返回数组的第一个元素或使用 find() 的第二个参数

请参阅此处 http://simplehtmldom.sourceforge.net/manual.htm

// Find (N)th anchor, returns element object or null if not found (zero based)

$ret = $html->find('a', 0);

您的 MYSQL 插入格式错误,请参阅 https://dev.mysql.com/doc/refman/5.7/en/insert.html正确的是

INSERT INTO ScoreTable (Score1, Score2, Pname) VALUES ('$S1', '$S2','$name')

而且我不知道你的“dbconnect.php”里有这个。但是如果有类似 "$mysqli = mysqli_connect" 你的代码是

foreach ($table->find('tr') as $row) {
$name =$row->find('td.Name',0)->plaintext;
$S1 =$row->find('td.S1',0)->plaintext;
$S2 =$row->find('td.S2',0)->plaintext;
if (!is_null($name)) { // if found name
$name=$mysqli->real_escape_string($name); // Escapes special characters
$S1=$mysqli->real_escape_string($S1);
$S2=$mysqli->real_escape_string($S2);

if ($mysqli->query("INSERT INTO ScoreTable (Score1, Score2, Pname) VALUES ('$S1', '$S2','$name')") === TRUE) {//Make SQL query and check is it success
echo "Sccess\n";
}
}

}

检查你的 dbconnect.php 和过去需要的链接到连接变量而不是 $mysqli

此外,强烈建议使用 real_escape_string() 来转义特殊字符。尤其是当您使用外部数据时。

关于php - 使用 simple_html_dom 解析 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48739579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com