我正在使用wordpress创建一个曲棍球网站。我有一个自定义菜单的曲棍球运动员和我使用wp_nav_menu获取这样的HTML:
<ul id="example-menu">
<li><a href="/example/">[3] [DeBlois] [USA] [20 yr] [5’11] [185 lbs]</a></li>
<li><a href="/example/">[35] [Baldino] [USA] [20 yr] [5’11] [185 lbs]</a></li>
<li><a href="/example/">[2] [Esch] [USA] [20 yr] [5’11] [185 lbs]</a></li>
</ul>
在将此回显到页面之前,我想将其分解为一个数组并将其放回一个表中,以便每列都很好地排列。我还需要用图形替换[USA]部分,一旦我将列表放入数组中就很容易做到。
解析这种类型的html的最佳方法是什么?我可以在WP中使用不同的功能吗?
答案 0 :(得分:2)
<?php
$html = '<ul id="example-menu">
<li><a href="/example/">[3] [DeBlois] [USA] [20 yr] [5’11] [185 lbs]</a></li>
<li><a href="/example/">[35] [Baldino] [USA] [20 yr] [5’11] [185 lbs]</a></li>
<li><a href="/example/">[2] [Esch] [USA] [20 yr] [5’11] [185 lbs]</a></li>
</ul>';
$doc = new DOMDocument();
@$doc->loadHTMl( $html);
$link_array = $doc->getElementsByTagName('a');
$result = array();
foreach($link_array as $element )
{
$value = $element->nodeValue;
$value = str_replace('[','',$value);
$value = str_replace(']','',$value);
$row = explode(" ",$value);
$result[] = $row;
unset($row);
}
echo "<pre>";
print_r($result);
echo "</pre>";
?>
输出
Array
(
[0] => Array
(
[0] => 3
[1] => DeBlois
[2] => USA
[3] => 20
[4] => yr
[5] => 5’11
[6] => 185
[7] => lbs
)
[1] => Array
(
[0] => 35
[1] => Baldino
[2] => USA
[3] => 20
[4] => yr
[5] => 5’11
[6] => 185
[7] => lbs
)
[2] => Array
(
[0] => 2
[1] => Esch
[2] => USA
[3] => 20
[4] => yr
[5] => 5’11
[6] => 185
[7] => lbs
)
)
答案 1 :(得分:0)
如果你正在dmcnelis建议的其他网站上搜索,你可以在'['''字符上使用PHP's Dom getElementById和exploding的组合,同时剥离'['。
答案 2 :(得分:0)
你可以用
爆炸'<li>'
和strip_tags()获取行(忽略第一行),然后遍历它们并使用
进行爆炸'] ['
获得cols。