2014-01-20 2 views
0

Я новичок в PHP, я попытался получить данные из XML-файла и отобразить его соответствующим образом. Теперь мне удалось извлечь данные и отобразить их.
Ниже приведен код -Как отобразить дефолт по умолчанию, когда отображаемого содержимого нет

if($xml_response = @simplexml_load_file('http://www.test.com/Testapp/TestSite?code=Test')) 
{ 

      foreach ($xml_response->promotions as $promotions) { 
//print_r($promotions); 
       foreach ($promotions->promotion as $promotion) { 
if(isset($promotion)){ 
       $text=$promotion->text; 
       if (strlen($text) > 80) { 
             $stringCut = substr($text, 0, 80); 
             $text = substr($stringCut, 0, strrpos($stringCut, ' ')).' ... '; 
             } 
       ?> 
<div class="ads" style="margin-right:0px;"> 
<a href="<?=$promotion->link;?>" title="" target="_blank"> 
    <h2><?php echo $promotion->title;?></h2> 
    <img src="<?php echo $promotion->image;?>" align="left" width="100px" height="80px"> 
    <h2 style="vertical-align:text-top"><?php echo $text ?></h2></a> 
    </div> 

<?php } 
else 
{?> 
<div class="ads" style="margin-right:0px;"> 
    <h2>Advertisement Title 1</h2> 
    <img src="images/side-banner.jpg" align="left" width="100px" height="80px"> 
    <h2 style="vertical-align:text-top">We improve your way of working and communicating with your groups.</h2> 
    </div> 

<?php }   } 

Теперь я в состоянии отображать изображения, когда содержание там, но когда есть не должно отображаться без содержания по умолчанию содержания. Поэтому я проверил с условием isset, но я не могу отображать изображения по умолчанию. Ниже приводится XML -

<promotions> 
<promotion> 
<title>Test</title> 
<text>Sign off for limited time offer</text> 
<link>NewCentrescdr.jpg</link> 
<image>test.jpg</image> 
<date>2013-07-16</date> 
</promotion> 
<promotion> 
<title>Test</title> 
<text>Test text</text> 
<link>http://www.test.com</link> 
<image>test.jpg</image> 
<date>2013-09-28</date> 
</promotion> 
</promotions> 

Теперь, на основании количества продвижения в XML, я хочу, чтобы отобразить only three на странице. Если нет рекламных акций, рекомендуется показывать рекламу по умолчанию. В приведенном выше XML есть только 2 рекламных акции, поэтому третий должен быть по умолчанию. Как я могу это сделать?

ответ

0

Я бы посоветовал упростить до минимального кода и заставить его работать оттуда.
После того, как он делает то, что вы хотите, чтобы это сделать, построить оттуда и добавить HTML, CSS и т.д.

Код:

$xml_response = simplexml_load_string($x); // assume XML in $x 

// count <promotion>, but maximum is 3 
$count = count($xml_response->promotion); 
if ($count > 3) $count = 3; 

// loop over <promotion>, echo it out 
for ($i = 0; $i < $count; $i++) { 
$promotion = $xml_response ->promotion[$i]; 
    echo "$promotion->title<br />$promotion->text<br /><br />";     
} 

// if there are less than 3 <promotion>, echo out standard. 
if ($count < 3) { 
    echo "Standard<br />Standard Promotion<br /><br />"; 
} 

видеть, что это работает: http://codepad.viper-7.com/JMjPVo

Смежные вопросы