获取 ul li 字符串值并将它们存储在变量或数组中 php [关闭]

问题描述 投票:0回答:3

我正在尝试将网站上列表项的字符串值存储到 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>

我想要的理想情况是保存值“项目一”、“项目二”、“项目三”的变量或数组。

php html string dom getelementsbyclassname
3个回答
5
投票

试试这个

$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);

2
投票

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

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

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

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";

?>
© www.soinside.com 2019 - 2024. All rights reserved.