MAGPIE RSS : Limiter le nombre de caractères "description"

WRInaute impliqué
Bonjour à Tous,

J'ai une interrogation et un souhait, comment réduire le nombre de caractères du champ description dans un extrait de flux rss via MAGPIE RSS ?

J'ai vu et lu pas mal de forum dont WRI, sans trouver la réponse.

Quelqu'un a t il déjà fait une modif ? et pourrait il la partager ?

merci d'avance
 
WRInaute occasionnel
Oui, déjà fait, le plus simple est de traiter la variable de réception de la description de ton flux. De là tu coupes au Xième caractère et tu affiches la variable qui récupère la description tronquée...

J'ai pas plus simple.
 
WRInaute impliqué
Merci de l'explication théorique, en code cela se traduit comment? quel fichier(s) dois-je modifier ?
 
WRInaute accro
Dans ton code, à l'endroit où s'affiche la description, tu la tronques avec une fonction du genre:
PHP:
<span class="syntaxdefault"><br />function truncate</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $max</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $rep </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'...'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $stringlength </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">" "</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">$max</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">strrpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$stringlength </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> $max</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">     $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$rep</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    <br />    return $string</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault"> </span>

N.B.: MagPie c'est complétement outdated:
http://sourceforge.net/projects/magpierss/files/ les derniers fichiers datent de 2005 !

Je te conseille de jeter un oeil à SimplePie:
http://simplepie.org/
 
WRInaute impliqué
spout a dit:
Dans ton code, à l'endroit où s'affiche la description, tu la tronques avec une fonction du genre:
PHP:
<span class="syntaxdefault"><br />function truncate</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $max</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $rep </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'...'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $stringlength </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">" "</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">$max</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">strrpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$string</span><span class="syntaxkeyword">,</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$stringlength </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> $max</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">     $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$rep</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    <br />    return $string</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault"> </span>

Ok mais dans le fichier parser ?
 
WRInaute occasionnel
Tu dois avoir un truc de ce style :

Code:
 include("magpierss/rss_fetch.inc");
$fichier_xml ="http://www.lesitedetonfluxRSS.com";
// exemple : "http://www.clubic.com/xml/news.xml";
$nombre_element = 5;

$rss = fetch_rss($fichier_xml);

if (is_array($rss->items))
    {
    $liste = array_slice($rss->items, 0, $nombre_element);

    echo "<table>\r\n<tr>\r\n<td>\r\n <font size=\"2\"><b>L'actu des moteurs de recherche</b></font></td>\r\n</tr>\r\n";
    foreach ($liste as $item ) {

        $title = $item[title]; 
        $url = $item[link];
        $desc = $item[desc];

        echo "<tr><td>News : $title<br />$desc</td></tr>\n";
        }
       echo "</table>";
    }

Avant de faire ton echo $desc, tu lui fais le traitement avec la fonction que t'a filé @spout.
Avec tout ça, tu as tout pour t'en sortir. Je t'ai tout fait, y a plus qu'à copier-coller :wink:

Au fait, idem que @spout, regardes un peu simplpie, il est sympa, parce que MagpieRSS date un peu.
 
Discussions similaires
Haut