Я пытаюсь сохранить строковое значение элемента списка на моем веб-сайте в переменную / массив в 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), а затем отправить его на ваш PHP с помощью AJAX.
// 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"; ?>