Как преобразовать данные списка в таблицу в php - PullRequest
0 голосов
/ 01 марта 2011

Я создаю хоккейный сайт с использованием 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>

перед тем, как отобразить это на странице, я хочу разбить его на массив и собрать обратно в таблицутак что каждый столбец выстроен красиво.Мне также нужно заменить часть [США] на графику, что будет легко сделать, как только я получу список в массив.

Каков наилучший способ анализа этого типа HTML?Есть ли другая функция, которую я могу использовать в WP?

Ответы [ 3 ]

2 голосов
/ 01 марта 2011
<code><?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 "
";?>

ВЫХОД

    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
        )

)
0 голосов
/ 01 марта 2011

Вы можете взорваться с помощью

'<li>'

и strip_tags (), чтобы получить строки (игнорируя первый), и пройти через них и взорваться с помощью

'] [' 

, чтобы получитьсмещ_по_столбцы.

0 голосов
/ 01 марта 2011

Если вы извлекаете информацию с другого веб-сайта, как предлагает dmcnelis, вы можете использовать комбинацию Dom getElementById PHP и затем взрыва на символе ']' во время удаления '[ .

...