【发布时间】:2017-01-18 01:19:44
【问题描述】:
我正在使用 PHP Simple HTML Dom Parser 从 HTML 表格中提取单元格值内容并将它们存储在数组中。
HTML:
<td class="inflexion">so<span class="deviation">y</span></td>
<td class="inflexion"><span class="deviation">fui</span></td>
<td class="inflexion"><span class="deviation">er</span>a</td>
<td class="inflexion">haber sería</td>
期望的输出:
大豆
喂
时代
haber sería
PHP:
function getvariations($conjtables){
$conjtables = str_get_html($conjtables);
$variations = [];
foreach ($conjtables->find('td[class=inflexion]') as $inflexion) {
$variations[] = $inflexion->plaintext;
}
return array_unique($variations);
}
$variations = getvariations($conjtables);
foreach ($variations as $variation) {
echo $variation . '<br>';
}
这可行,但是,输出似乎在一些出现的 span 元素前面加上了一个不需要的空格(请参阅下面的第三项):
大豆
喂
嗯
haber sería
关于解决这个问题有什么建议吗?我不能随意删除空格,因为某些单元格碰巧确实有多个单词,就像给出的示例中的最后一项一样。
【问题讨论】:
-
从内部
span获取价值并在它之后和 implode'em -
你看到
er a的a在span之外。添加一些 CSS 规则,如.deviation {margin:0;padding:0;}或将a移动到span! -
"a" 在设计上位于 之外,我无法更改。我需要这些值来将它们存储在 MySQL 表中,因此更改 CSS 并没有多大帮助。
-
没有真正的空格(请参阅您的第一个 HTML 块),似乎 css 规则正在添加这个空格。使用浏览器开发控制台检查它的真实空间或一些填充/边距。
-
那里没有添加任何空格的 CSS 规则。 .deviation span 仅用于颜色编码。
标签: php simple-html-dom