获取ul li一个字符串值并将它们存储在变量或数组php中

时间:2013-07-14 09:31:26

标签: php html string dom getelementsbyclassname

我试图将我网站上列表项的字符串值存储到PHP中的变量/数组中,以便对它们进行一些条件检查/语句。使用PHP获取列表项的字符串值有点困难,有人可以帮忙吗?

这是标记。

<div class="coursesListed">
<ul>
<li><a href="#"><h3>Item one</h3></a></li>
<li><a href="#"><h3>item two</h3></a></li>
<li><a href="#"><h3>Item three</h3></a></li>            
</ul>
</div>

理想情况下,我想要的是一个变量或数组,它包含值“第一项”,“第二项”,“第三项”。

3 个答案:

答案 0 :(得分:4)

试试这个

$html = '<div class="coursesListed">
<ul>
<li><a href="#"><h3>Item one</h3></a></li>
<li><a href="#"><h3>item two</h3></a></li>
<li><a href="#"><h3>Item three</h3></a></li>            
</ul>
</div>';

$doc = new DOMDocument();
$doc->loadHTML($html);
$liList = $doc->getElementsByTagName('li');
$liValues = array();
foreach ($liList as $li) {
    $liValues[] = $li->nodeValue;
}

var_dump($liValues);

答案 1 :(得分:2)

您将需要解析HTML代码以获取文本。 DOM解析器可用于此目的。

   $DOM = new DOMDocument;
   $DOM->loadHTML($str); // $str is your HTML code as a string

   //get all H3 
   $items = $DOM->getElementsByTagName('h3');

答案 2 :(得分:1)

在Javascript(可能使用jQuery)中解析它可能更容易,然后使用一些AJAX将其发送到PHP。

// Javascript/jQuery
var array = [];
$("h3").each(function() {
    array.push($(this).html());
});

var message = JSON.stringify(array);
$.post('test.php', {data: message}, function(data) {
    document.write(data); // "success"
}

然后在PHP中:

<?php

$data = $_POST['data'];

// convert json into array
$array = json_decode($data);

// do stuff with your data
// then send back whatever you need

echo "success";

?>