2

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

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

4

3 回答 3

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);
于 2013-07-14T09:39:52.827 回答
2

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

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

   //get all H3 
   $items = $DOM->getElementsByTagName('h3');
于 2013-07-14T09:37:47.027 回答
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";

?>
于 2013-07-14T10:18:43.403 回答