Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
Funkcija, ogranicenje znakova

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side
View previous topic :: View next topic  
Author Message
Zeus



Joined: 09 Sep 2003
Posts: 775
Location: Čakovec

PostPosted: 28.10.2008 20:23    Post subject: Funkcija, ogranicenje znakova Add user to your forum ignore list Reply with quote

Ovako, imam ovo:

Code:
<?php nekaFunkcija(); ?>


Ovo daje neki tekst, npr. JEDAN DVA TRI CETIRI

Ja bih htio ovo ograniciti na recimo 12 znakova i da na kraju doda tri tocke.
Rezultat bi morao biti ovaj:
JEDAN DVA TR...

Da li se moze to zadati tu kod tog <?php ?>

Last edited by Zeus on 29.10.2008 13:24; edited 1 time in total
Back to top
View user's profile Send private message Twitter profile
PaNtHeR



Joined: 17 Sep 2003
Posts: 161

PostPosted: 28.10.2008 21:54    Post subject: Add user to your forum ignore list Reply with quote

Code:
function short_chars ($string, $n) {   
   $duzina = mb_strlen($string);
   $ret = mb_substr($string,0,$n);
   if ($duzina>$n) {$ret .= '...';}

   return $ret;
}

function short_words ($string, $n) {   
   $words = explode(" ", $string);
   for ($i=0;$i<$n;$i++) {
      $ret .= $words[$i];
      $ret .= ' ';
   }
   $ret .= '...';
   return $ret;
}

function short_sentence ($string, $n) {   
   $words = explode(".", $string);
   for ($i=0;$i<$n-1;$i++) {
      $ret .= $words[$i];
      $ret .= '.';

   }
   $ret .= '...';
   return $ret;
}


Ja koristim ove tri, jedna gleda samo znakove, druga riječi a treća rečenice, ali samo gleda točku.

Pripazi samo ako režeš html kod, može ti se desit da ti sreže usred taga, a to ne želiš, ali ove moje funkcije to ne gledaju...

_________________
Back to top
View user's profile Send private message Send e-mail
PaNtHeR



Joined: 17 Sep 2003
Posts: 161

PostPosted: 28.10.2008 21:56    Post subject: Add user to your forum ignore list Reply with quote

Code:
function html_truncate($text, $max, $ending = '...') {
   $max = $max - mb_strlen($ending);
   $done = false;
   $entity = false;
   $tag = false;
   $out = "";
   $outCnt = 0;
   $textCnt = mb_strlen($text);
   for ($i = 0; $i < $textCnt; $i++) {
      if ($entity) {
         if (!$done) $out .= $text[$i];
         if ($text[$i] == ';') $entity = false;

      } else if ($tag) {
         $out .= $text[$i];
         if ($text[$i] == '>') $tag = false;

      } else {
         switch ($text[$i]) {
            case '<': $tag = true; $out .= $text[$i]; break;
            case '&': $entity = true; /*break;*/
            default:
               if (!$done)
               if ($outCnt < $max) {
                  $out .= $text[$i];
                  $outCnt++;
               } else {
                  $done = true;
                  $out .= $ending;
                  return $out;
               }
         }

      }
   }
}


Evo ova je HTML safe... nisam ju ja napisao, uzeo sam negdje...

Sretno!

_________________
Back to top
View user's profile Send private message Send e-mail
Zeus



Joined: 09 Sep 2003
Posts: 775
Location: Čakovec

PostPosted: 28.10.2008 22:09    Post subject: Add user to your forum ignore list Reply with quote

Ali ne znam gdje ugurati sad tu funkciju, jer pozadina funkcije je dosta velika, a to sto sam naveo daje samo rezultat svega. Dakle to <?php ?> treba uklopiti u ovo Smile hvala na trudu, pokusavam nesto Smile
Back to top
View user's profile Send private message Twitter profile
maratz
mi3.crew


Joined: 24 Nov 2003
Posts: 1207
Location: ZAG

PostPosted: 29.10.2008 07:12    Post subject: Add user to your forum ignore list Reply with quote

Nisam baš neki programer, ali provjeri prvo da li nekaFunkcija vraća string ili ispisuje string,
ako vraća string, onda ga spremiš u varijablu i izmanipuliraš navedenim funkcijama, ako
ispisuje, promjeni da vraća :)

Code:
function vracam() {
    return 'bla';
}
function ispisujem() {
    echo 'bla';
}

_________________
STOP HITTING YOURSELF! | NETIQUETTE | TYPETESTER | Hypertext rulez™ | CREATIVE NIGHTS | ACCOMMODATIONS
Back to top
View user's profile Send private message Visit poster's website Twitter profile
PaNtHeR



Joined: 17 Sep 2003
Posts: 161

PostPosted: 29.10.2008 07:29    Post subject: Add user to your forum ignore list Reply with quote

aha, sorry..

dakle jednu od ovih funkcija staviš negdje u kod, prije nego ju želiš koristiti, i onda

Code:
<?php
html_truncate (nekaFunkcija(), 12);
?>


ili:

Code:
<?php
$tekst = nekaFunkcija();
html_truncate ($tekst, 12);
?>


kuiš?

heh. sad opet ima catch...
nekaFunkcija(); ti mora vratit string pomoću return na kraju, ako u toj funkciji nemaš na kraju vraćanje rezultata sa return nego ona odmah radi echo, e onda ćeš ju morati malo prepraviti... ako hoćeš postaj ju tu pa ćemo ti pomoći.

edit: Maratz to već reče ali ja još dodatno pojsanih Smile

_________________
Back to top
View user's profile Send private message Send e-mail
Zeus



Joined: 09 Sep 2003
Posts: 775
Location: Čakovec

PostPosted: 29.10.2008 11:00    Post subject: Add user to your forum ignore list Reply with quote

Ne mogu natjerati da to radi... ovo je ta funkcija:

Code:
function mosPathWay() {
   global $mosConfig_absolute_path;

   $Itemid = intval( mosGetParam( $_REQUEST, 'Itemid', '' ) );
   require_once ( $mosConfig_absolute_path . '/includes/pathway.php' );
}
Back to top
View user's profile Send private message Twitter profile
PaNtHeR



Joined: 17 Sep 2003
Posts: 161

PostPosted: 29.10.2008 11:11    Post subject: Add user to your forum ignore list Reply with quote

Uh taj Mambo... zašto je sve tako komplicirano u tom CMS-u??

Code:
require_once ( $mosConfig_absolute_path . '/includes/pathway.php' );


ova linija ti poziva neki eksterni fajl u kome se odradi ispis toga što ti želiš skratiti, a u tom fajlu može biti 5 linija koda ili 55.555, tako da ti mogu samo jedan WILD WILD guess dati:

Code:
<?php
function callback($buffer) {
    return html_truncate ($buffer, 12);
}

ob_start("callback");
require_once ( $mosConfig_absolute_path . '/includes/pathway.php' );
ob_end_flush();
?>


Ovo funkcionira tako da sav output prema browseru pošalje nekoj funckiji, u ovom slučaju callback koja ga onda odvrti i vrati browseru... Nikad ovako nešto nisam koristio, ali moglo bi radit.

_________________
Back to top
View user's profile Send private message Send e-mail
Zeus



Joined: 09 Sep 2003
Posts: 775
Location: Čakovec

PostPosted: 29.10.2008 12:11    Post subject: Add user to your forum ignore list Reply with quote

Kad bi ja sad znao ovo ukomponirati u code Smile Kamo ovaj dio ide sto si ti izmjenio? Hehe...
Ma nego, uspio sam naci konkretno rjesenje za Joomlu, gdje oni to rade sa:

Code:
text-overflow: ellipsis;


I jos par linija koda, ali ovo je interesantno: opet problem, jer ellipsis firefox naravno ne podrzava, pokusavam sa raznima hackovima kao sto je ovaj:
http://www.hedgerwow.com/360/dhtml/text_overflow/demo.php

Ali ne mogu to slozit kak spada da radi u firefoxu. Da li se netko igrao s time ili zna kak bi to islo?[/code]
Back to top
View user's profile Send private message Twitter profile
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group