我试图将我网站上列表项的字符串值存储到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>
理想情况下,我想要的是一个变量或数组,它包含值“第一项”,“第二项”,“第三项”。
答案 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";
?>