Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skracanie zdań
flonder
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.01.2006

Ostrzeżenie: (0%)
-----


Witam, mma następujący problem:
chcę utworzyć skrypt, który przytnie zdanie do np. 20 znaków, ale nie chcę, żeby przycinał je w polowie wyrazu, tylko usuwał ostatnie słowo, które się nie mieści... dry.gif
potrzebuję tego do wyświetlania "Na Forum" i nie chcę, żeby zajmowalo mi 8 llinijek winksmiley.jpg

Ten post edytował flonder 15.01.2006, 10:40:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
pawel_k
post
Post #2





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

Ostrzeżenie: (0%)
-----


rozbijasz funkcja explode" title="Zobacz w manualu php" target="_manual ciag znakow a poniej pobieraz w petli tyle slow ile Ci potrzeba (w petli po kazdym elemencie tablicy), przyda Ci sie jeszcze funkcja strlen" title="Zobacz w manualu php" target="_manual

Ten post edytował pawel_k 15.01.2006, 10:45:06
Go to the top of the page
+Quote Post
flonder
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.01.2006

Ostrzeżenie: (0%)
-----


proszę wytlumacz trochę prościej winksmiley.jpg jestem początkujący rolleyes.gif
albo dokladniej....
Dobra wiem, że powinienem się z tym zgłosić do działu początkujący- nie musisz tlumaczyc... winksmiley.jpg

Ten post edytował flonder 15.01.2006, 10:48:55
Go to the top of the page
+Quote Post
pawel_k
post
Post #4





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $tab = explode(" ", $tekst);
  4. $str = "";
  5. for($i = 0; $i < sizeof($tab); $i++) {
  6. if(strlen($str) > 20) {
  7. return;
  8. }
  9. $str .= $tab[$i];
  10. }
  11. ?>
pisane z glowy, mniej wiecej cos takiego...

Ten post edytował pawel_k 15.01.2006, 10:51:39
Go to the top of the page
+Quote Post
flonder
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.01.2006

Ostrzeżenie: (0%)
-----


Dzięki to załatwia sprawę Rkingsmiley.png
a jakbym chcial bez pętli?

Ten post edytował flonder 15.01.2006, 10:56:25
Go to the top of the page
+Quote Post
yavaho
post
Post #6





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Obcinasz zdanie do powiedzmy 30 znakow
Potem wkladasz to do tablicy za pomoca funkcji explode (jak w powyzszych postach)
Usuwasz ostatni rekord z tablicy array_pop" title="Zobacz w manualu php" target="_manual


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
flonder
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.01.2006

Ostrzeżenie: (0%)
-----


ale jak wykonać samo obcięcie?
nie wiem czy zadziala cos takiego:

  1. <?php
  2. if ( strlen($tekst) > 20 ) {
  3. strlen($text) = 20;
  4. }
  5. ?>


Ten post edytował flonder 15.01.2006, 11:22:14
Go to the top of the page
+Quote Post
crash
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Na forum było wiele razy o tym, oto jedna z funkcji:
  1. <?php
  2. function short( $txt, $len = 100, $add = '...' )
  3. {
  4.  if( strlen( $part = substr( $txt, 0, $len + 1 - strlen( $add ) ) ) < strlen( $txt ) + 1 and strlen( $txt ) > 0 )
  5.  {
  6. $txt = preg_replace( '/(s|,|.)*S*$/ ', '', $part ) . $add;
  7.  }
  8.  
  9.  return $txt;
  10. }
  11. ?>


--------------------
Go to the top of the page
+Quote Post
Sabistik
post
Post #9


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


a nie wystarczy:
  1. <?php
  2.  
  3. echo substr( $sString, 0, strpos($sString, ' ', 100) );
  4.  
  5. ?>

?
Go to the top of the page
+Quote Post
flonder
post
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.01.2006

Ostrzeżenie: (0%)
-----


Pomysł Sabistika mi się najbardziej spodobał....
Krótki i prosty...
Mam ostatnie pytanie- jak to wszystko połączyć z tablicą wielowymiarową?
np
Kod
[0]
  [0] - "Text"
  [1] - "inny text"
  [2] - "tekst inszy"
[1]
  [0] - "user1"
  [1] - "user2"
  [2] - "user3"


Ten post edytował flonder 15.01.2006, 12:08:12
Go to the top of the page
+Quote Post
crash
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


A jak to niby chciałbyś połączyć?


--------------------
Go to the top of the page
+Quote Post
flonder
post
Post #12





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 15.01.2006

Ostrzeżenie: (0%)
-----


moze cos w tym stylu:
  1. <?php
  2.  
  3. $userzy = array(
  4. 'Jan' ,
  5. 'mark23' ,
  6. 'ted_on'
  7. );
  8.  
  9. $tekst = array (
  10. 'Blabla bla, coś piszę nie wiem co',
  11. 'Drugi tekst na przyklad fragment z forum',
  12. 'trzeci, no sam nie wiem, jakis inny'
  13. );
  14.  
  15. for ($i=1; $i <= count($userzy);  $i++) {
  16. echo substr( $tekst[$i], 0, strpos($tekst, ' ', 20) );
  17. echo "napisał: $userzy[$i]"; }
  18.  
  19.  
  20. ?>


Ten post edytował flonder 15.01.2006, 12:29:51
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:03