我正在尝试将网站上列表项的字符串值存储到 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>
我想要的理想情况是保存值“项目一”、“项目二”、“项目三”的变量或数组。
试试这个
$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);
您需要解析 HTML 代码以获取文本。 DOM 解析器可以用于此目的。
$DOM = new DOMDocument;
$DOM->loadHTML($str); // $str is your HTML code as a string
//get all H3
$items = $DOM->getElementsByTagName('h3');
用 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";
?>