我正在使用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>
期望的输出:
大豆
FUI
时代
haberserí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元素的前面出现了一个不受欢迎的空间(参见下面的第三项):
大豆
FUI
呃a
habersería
有关修复此问题的任何建议吗?我无法任意删除空格,因为有些单元格确实有多个单词,如给出的示例中的最后一项。
答案 0 :(得分:2)
将innertext
与strip_tags一起使用,而不是plaintext
:
function getvariations($conjtables){
$conjtables = str_get_html($conjtables);
$variations = [];
foreach ($conjtables->find('td[class=inflexion]') as $inflexion) {
$variations[] = strip_tags($inflexion->innertext);
}
return array_unique($variations);
}
$variations = getvariations($conjtables);
foreach ($variations as $variation) {
echo $variation . '<br>';
}
输出:
大豆
FUI
时代
habersería