Ostatní témata (Off Topic témata) : phpRS Fórum
Máte problém s konfigurací počítače? Hledáte nejlepší webhosting pro vaši aplikaci? Nevíte si rady s nějakým zajímavým programátorským oříškem? Týká se dotaz fóra? ... Pokud ano, tak je toto diskuzní fórum určeno právě vám.
phpRS - redakční a informační systém
Zkrácení textu, ale zachovat celá slova
Zaslán uživatelem/kou: georgy boy (IP adresa zaznamenána)
Datum: 2007-02-10, 15:26

Zdravím,

rád bych zkrátil úvod článku, který se zobrazuje na hlavní straně.

Použil jsem tento kod, ktery jsem našel u komentářů:

// zkraceni
  if (strlen($pole_clanek["uvod"])>150):
    $pole_data["text"]=substr($pole_clanek["uvod"],0,150);
  endif;


Ale rád bych, aby zůstala dokončená celá slova a ne jen část slova (tento kod to prostě po znaku 150 nekompromisně uřízne).

Což o to, to by ještě tak nejhorší nebylo, ale když v úvodních slovech článku je třeba vložen obrázek, tak to rozhodí i stránku, bo se to uřízne přesně v kódu obrázku (<img src="image/ ).

Děkuji všem za rady a nasměrování. ;-)

Re: Zkrácení textu, ale zachovat celá slova
Zaslán uživatelem/kou: xsuchy09 (IP adresa zaznamenána)
Datum: 2007-02-11, 02:47

použít wordwrap, vlastní fci na odříznutí u mezery, regulární výrazy pro neořezávání kódu odkazů, obrázků apod. atd. ... nejlépe nějakou jednoduchou fci, která se bude jen volat při zobrazení každého článku ... nebo psát úvody článku kratší s pár tečkami apokračovat v smotném těle ;) záleží na tom co upřednostníš, nebo co jsi si schopen naprogramovat ;)

========================
WEB: Publikační systém WAMOS
SEO: SEO analýza zdarma
OPEN PROJECTS: Studentský portál VUT
HOSTING: WebGlobe.cz
ICQ: 313887644
EMAIL: xsuchy09(at)centrum.cz
========================

Re: Zkrácení textu, ale zachovat celá slova
Zaslán uživatelem/kou: georgy boy (IP adresa zaznamenána)
Datum: 2007-02-11, 11:49

Diky za radu. Nakonec jsem to zkusil pres regularni vyrazy a proste a jednoduse odkaz a email zobrazim jako cisty text a obrazek do uvodniho textu clanku vubec nedavam.

Tak jsem to zkusil timto zpusobem a pro me je to vyhovujici.


function PrelozZnaky($txt = '')
{
if ($txt!=''):
  // pole znaku
  $hledam = array(
        "/\<a href=\"((http:\/\/|https:\/\/|ftp:\/\/|)([a-z0-9\.\-@:]+)[a-z0-9;\/\?:@=\&\$\-_\.\+!*'\(\),\#%~]*?)\"\>((http:\/\/|https:\/\/|ftp:\/\/|)([a-z0-9\.\-@:]+)[a-z0-9;\/\?:@=\&\$\-_\.\+!*'\(\),\#%~]*?)\<\/a\>/is",
        "/\<a href=\"((mailto:|)([a-z0-9\-_\.\+]+@[a-z0-9\-]+\.[a-z0-9\-\.]+?))\"\>([a-z0-9\-_\.\+]+@[a-z0-9\-]+\.[a-z0-9\-\.]+?)\<\/a\>/is",
        "/\<img src=\"(.+?)\" style=\"(.+?)\" alt=\"(.+?)\"\>/is");
  // pole prekladovych znaku
  $nahrazuji = array(
        "$1",
        "$2",
        "");
  $txt=preg_replace($hledam,$nahrazuji,$txt);
endif;

return $txt;
}

function ZkratText($text)

  {

    $vystup='';
    
    $tecky="...";
        
    // maximalni pocet slov ve vypisu
    $max_pocet_slov=20;
    
    //odbouram URL, img, ...
    $text=PrelozZnaky($text);

    //retezec prevedu do pole podle mezer
    $slova=explode(" ",$text);

    //spocitam pocet slov
    $pocet=count($slova);

    for($i=0;$i<=$max_pocet_slov;$i++)

      {
      
        $vystup.=$slova[$i]." ";

      }

    //pridam tri tecky pro naznaceni pokracovani
    $vystup.=$tecky;

    //vratim upraveny text
    return $vystup;

  }


Jeste jednou diky za nasmerovani.



Celkem upraveno 1×. Poslední úprava georgy boy v 11.02.2007 12:10.



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.