2014-09-21 2 views
0

XML 제품 피드를 구문 분석하는 PHP에 사용자 지정 방문 페이지를 작성하고 있습니다. 제품 설명은 기술 정보 및 사양에 들어갈 때 매우 길기 때문에 처음 200자를 읽으려면 압축해야합니다. 두 자릿수에 도달하면 더 많은 링크를 읽을 수 있기를 바랍니다.PHP에서 XML을 구문 분석 할 때 문자열을 제한하는 방법

내가 지금까지 가지고있는 코드는 다음과 같습니다

<?php 

$xml = simplexml_load_file('feed.xml'); 

foreach ($xml->item as $item) { ?> 
<div class="row"> 
<div class="lhs"> 
    <h3><a href="<?php echo $item->link ?>"><?php echo $item->brand.' '.$item->title ?></a></h3> 
    <p class="pri">&pound;<?php echo $item->price ?></p> 
    <p><?php echo $item->description; ?></p> 
    </div> 
    <div class="rhs"> 
     <img src="<?php echo $item->image_link ?>" alt="<?php echo $item->title ?>" height="150" /> 
     </div> 
     </div> 

<?php 
} 
?> 

누군가가 내가 추가 할 필요가 다른 어떤 조언을 주 시겠어요? PHP에서 기본 패턴을 따라갈 수 있습니다. 몇 가지 지침이 필요합니다.

미리 감사드립니다.

답변

0

$ short_description 줄에 주목하십시오. "더보기"의 일부 기본 js 예제로 편집 됨

<?php 
$xml = simplexml_load_file('feed.xml'); 

foreach ($xml->item as $item) { 
    $short_description = substr($item->description, 0, 200); 
    ?> 
    <div class="row"> 
     <div class="lhs"> 
     <h3><a href="<?php echo $item->link ?>"><?php echo $item->brand . ' ' . $item->title ?></a></h3> 
     <p class="pri">&pound;<?php echo $item->price ?></p> 
     <p id="shown"><?php echo $short_description; ?>... <a href="#" onclick="document.getElementById('hidden').style.display = 'block'; document.getElementById('shown').style.display = 'none'; this.style.display = 'none'; return false;">Show more</a></p> 
     <p id="hidden"><?php echo $item->description; ?></p> 
     </div> 
     <div class="rhs"> 
     <img src="<?php echo $item->image_link ?>" alt="<?php echo $item->title ?>" height="150" /> 
     </div> 
    </div> 

    <?php 
} 
?> 
+0

감사합니다. JavaScript를 사용하지는 않았지만 훌륭하게 작동합니다. 다른 결과로, 얼마나 많은 결과가 표시 될 수 있습니까? 예 : 10? 아니면 다른 스레드를 시작해야합니까? – debonator

+0

아마 새 스레드를 시작하는 것이 좋을지 만 간단한 해결책은 $ i = 0을 추가하는 것입니다. foreach 앞에. foreach 루프가 끝나기 전에 $ i ++를 추가하십시오. 그런 다음이 루프의 어딘가에 넣습니다. if ($ i === 10) {break; } –

관련 문제