Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skrypt ucinający tekst w kanale RSS
Forum PHP.pl > Forum > PHP
PiotrN
Witam.
Chciałbym w kanale RSS "ucinać" tekst - wyświetlać tylko część.
Nie wiem jak do tego kanału:
  1. <?PHP
  2. include('/rss_config.php');
  3.  
  4. if(!isset($rss_news_include_url) or !$rss_news_include_url or $rss_news_include_url == ''){
  5.  
  6. die("");
  7.  
  8. }
  9.  
  10. header("Content-type: text/xml");
  11.  
  12. echo"<?xml version=\"1.0\" encoding=\"iso-8859-2\" ?>
  13. <?xml-stylesheet type=\"text/css\" href=\"/rss_style.css\" ?>
  14. <rss version=\"2.0\" >
  15. <channel>
  16. <title>$rss_title</title>
  17. <link>$rss_news_include_url</link>
  18. <language>$rss_language</language>
  19. <description></description>
  20. <generator></generator>
  21. ";
  22.  
  23. if(!$_GET[number] or $_GET[number] == ''){ $number = 5;}else{ $number = $_GET[number];}
  24. if(!$_GET[only_active] or $_GET[only_active] == ''){ $only_active = TRUE;}else{ $only_active = $_GET[only_active];}
  25.  
  26. $template="rss";
  27. include("news.php");
  28.  
  29.  
  30. echo"</channel></rss>";
  31. ?>

dodać ten kod:
  1. function cut( $str, $cnt){ $dots = ( strlen( $str) > $cnt) ? '...' : null; if( isset( $str[$cnt-1]) == ' ') { return substr( $str, 0, $cnt) . $dots; } else { $count = strpos( substr( $str, $cnt), ' '); return substr( $str, 0, $cnt + $count) . $dots; }}

i powiedzmy że ucina po 300 znakach, ale zwraca uwagę na spacje.
Żeby nie było tak: jakiś tam teks...
tylko:
jakiś tam tekst...
i to np. skracałoby: jakiś tam tekst na stronie
tehaha
no skoro masz już funkcję która skraca tekst to w czym problem?
PiotrN
dodaniem jej do kodu.
tehaha
funkcje wrzuć gdzieś na początku, a potem przepuszczasz przez nią tutuł np. tak:

  1. $rss_title = cut($rss_title, 300);
PiotrN
a treść wiadomości jak?
tehaha
no tak samo tylko zamiast zmienne $rss_title daj tą zmienną co chcesz skrócić
Kshyhoo
Identycznie:
  1. $rss_news_include_url = cut($rss_news_include_url, 300);
PiotrN
Ale to jest tylko adres tego nagłówka w kanale rss. To nie jest treść.

Myślę żo to tu trzeba to zrobić:
  1. <?PHP
  2. ///////////////////// TEMPLATE rss /////////////////////
  3. $template_active = <<<HTML
  4. <item>
  5. <title><![CDATA[{title}]]></title>
  6. <link>/index.php?subaction=showfull&amp;id={news-id}&amp;archive=&amp;start_from=&amp;ucat=8&amp;</link>
  7. <description><![CDATA[{short-story}]]></description>
  8. <guid isPermaLink="false">/index.php?subaction=showfull&amp;id={news-id}&amp;archive=&amp;start_from=&amp;ucat=8&amp;</guid>
  9. <pubDate>{date}</pubDate>
  10. </item>
  11. HTML;
  12.  
  13.  
  14. $template_full = <<<HTML
  15.  
  16. HTML;
  17.  
  18.  
  19. $template_comment = <<<HTML
  20.  
  21. HTML;
  22.  
  23.  
  24. $template_form = <<<HTML
  25.  
  26. HTML;
  27.  
  28.  
  29. $template_prev_next = <<<HTML
  30.  
  31. HTML;
  32. $template_comments_prev_next = <<<HTML
  33.  
  34. HTML;
  35. ?>


Tylko nie wiem jak z tym sobie poradzić:
  1. <![CDATA[{short-story}]]>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.