<li id="weather" class="widget-container widget-dark-blue">
<h3 class="widget-title">Weather</h3>
<?php include (TEMPLATEPATH . '/widgets/weather.php'); ?>
</li>
weather.php对气象服务进行卷曲请求并返回一张表。使用DomDocument类,我读取td's
内的值。我正在将当前天气状况的类名应用于div.weather
。
<?php
require_once('classes/SmartDOMDocument.class.php');
$url = 'some/domain...';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$str = curl_exec($curl);
$dom = new SmartDOMDocument();
$dom->loadHTML($str);
$xpath = new DOMXPath($dom);
$tds = $xpath->query('//div/table/tr/td');
foreach ($tds as $key => $cell) {
if ($key==1) {
$condition = $cell->textContent;
//$cell->parentNode->setAttribute('class', 'hello');
echo "<div class='weather " . strtolower($condition) ."'>";
...
&GT;
一切正常。我唯一的问题是,是否有一种PHP方法将classname $条件应用于保存信息的list-item? 因此,我不想在我的李天气里面有一个带有$ condtion的课程。我希望让李#在这个课程中适应。
<li id="weather" class="widget-container widget-dark-blue $condition">
有没有办法可以将$ condition类应用到保存所有内容的列表中。我可以使用javascript / jquery轻松完成。但是我想知道是否有一些服务器端解决方案。
谢谢
答案 0 :(得分:2)
也许你可以尝试类似的东西:
$parent = $cell->parentNode;
while ($parent->tagName != 'li')
{
$parent = $parent->parentNode;
}
$class = $parent->getAttribute('class');
$parent->setAttribute('class', $class . ' ' . strtolower($condition));