Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Fragment tekstu do pierwszej spacji...
k0b3
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Stosuje funkcje PHP do skracania wyrazów na stronie. Np.

  1. <?php
  2. substr($zmienna, 0, 16)
  3. ?>


Czy jest jakiś algorytm, który ucinał by zdanie dopiero po pierwszej lub po drugiej spacji. Poprostu ładniej by wyglądało..

Mam tak:

Zdanie prób...

a chce np.

Zdanie próbne....

Jest taka możliwość?

Z góry dziękuje za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
bełdzio
post
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


strpos i jedziesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
em1X
post
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


  1. <?php
  2. /**
  3. * Ucina tekst po wystapieniu okreslonej
  4. * ilosci spacji.
  5. * @param $string Pełny tekst
  6. * @param $spaces Po ilu spacjach ciąć tekst
  7. * @param $after Tekst do doklejenia po cięciu
  8. *
  9. * @return Ucięty tekst
  10. * **/
  11. function & shortCut(& $string, $spaces, $after = '...')
  12. {
  13. $spacer = ' ';
  14. $arrSize = explode($spacer, $string);
  15. $count = 0;
  16.  
  17. if (count($arrSize) == 0 || count($arrSize) - 1 <= $spaces)
  18. return $string;
  19.  
  20. for ($i=0; $i<$spaces + 1; $i++)
  21. $count += strlen($arrSize[$i]);
  22.  
  23. return substr($string, 0, strpos($string, $spacer, $count)) . $after;
  24. }
  25.  
  26. $str = "to jest hello world";
  27.  
  28. // utnij tekst po dwóch spacjach
  29. print shortCut($str, 2);
  30. ?>
Go to the top of the page
+Quote Post
k0b3
post
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Super! Wielkie dzięki za pomoc, ale chciałem jeszcze zapytać. Czy jest taka możliwość (przerabiając np ten kod), żeby spełniało taką funkcje:

Mam skrypt zintegrowany z forum, tak więc bbcode przy pisaniu newsa również jest. np [ b]

Chciałbym, aby rozpoznawało pierwsze pogrubienie i tylko je wyświetlało. Podobnie jak ze spacjami...

np.:

[b ]To jest nagłówek wiadomości! [ /b]
A tu juz, ciąg dalszy jakiegoś tekstu..

chce aby wyświetlało tylko tekst między pierwszymi znacznikami

ps.
[b ] pisze ze spacją zeby się wyświetliło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
pozdr

Ten post edytował kobemat 23.03.2007, 00:26:20
Go to the top of the page
+Quote Post
misiek172
post
Post #5





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


jeśli chodzi o te spacje to to jest bez sensu bo wyrazu mogą mieć rózne długości, lepiej niech ucina po wystąpieniu odpowiedniej ilości znaków i dodaje - i przenosi do drugiej linijki, efekt będzie taki:

ble ble i dłu-
gi wyraz się
przeniósł wi-
ęc tak już je-
st (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
k0b3
post
Post #6





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


przewidziałem to, ale w moim problemie, okreslona ilość spacji pasuje... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

To da się z Tymi [b ] ?

Ten post edytował kobemat 23.03.2007, 13:56:16
Go to the top of the page
+Quote Post
Łukasz O.
post
Post #7





Grupa: Zarejestrowani
Postów: 191
Pomógł: 5
Dołączył: 13.01.2007

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


gorzej jak czcionka ma zmienną szerokość znaków:P wtedy dupa bo WWW jest szersze od III - kobemat - spójrz na funkcje z rodziny preg_*
Go to the top of the page
+Quote Post
em1X
post
Post #8





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Cytat(kobemat @ 23.03.2007, 13:53:54 ) *
przewidziałem to, ale w moim problemie, okreslona ilość spacji pasuje... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

To da się z Tymi [b ] ?


z chęcią ale nie bardzo rozumiem problemu...
Go to the top of the page
+Quote Post
k0b3
post
Post #9





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Hmm... no to tak:
Integorwałem newsy z forum phpBB ze stroną i mam coś takiego:

To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst.
To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst. To jest tekst.

Czytaj dalej...


W jakimś dziale na stronie mam wyrzucane rekordy z nowymi newsami.

Chce zrobić tak, aby w tym dziale były tylko nagłówki wiadomości, a nagłówkami jest tekst pomiędzy znacznikami [ b] [/b ]

To jest chyba podobny problem jak ze sapacjami...

Pozdrawiam
Go to the top of the page
+Quote Post
bronchos
post
Post #10





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.03.2007

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


Z głowy, wiec nie jestem pewien, czy będzie wszystko OK:

$naglowek = preg_replace('/^(<b>.*?<\/b>).*/s','\\1',$pelnyTekst);
Go to the top of the page
+Quote Post
k0b3
post
Post #11





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


treść jest formatowana poprzez bbcode, wiec nie ma znaczników <br>, natomisat jest [b], tak więc zmieniłem je...

i nic się nie dzieje...

/// EDIT...

za szybko napisałem, w/w działa... nie trzeba nic zmieniac jednak...

pozdrtawiam, i dziękuje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
Go to the top of the page
+Quote Post
bronchos
post
Post #12





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.03.2007

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


Nie ma problemu. Jeśli natomiast chciałbyś wykrywać [b], to należy to zapisac jako: \[b\], a nie: [b].
W przypadku drugiego zapisu preg będzie traktował [b] jako klasę znaków zawierającą tylko 'b', zaś w pierwszym jako ciąg znaków '[b]';
Go to the top of the page
+Quote Post
k0b3
post
Post #13





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Hej.. znów wracam do podobnego tematu...

mam jakis tekst:

tojesttekst&xxxxxxx

chce zeby jakas funkcja wycinala mi tekst do znaku "&", czyli:

tojesttekst

pewnie sie da... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


////////////////////////////////////////////
aj juz mam... sorki za klopot...

identycznie jak ze spacja ;P

Ten post edytował kobemat 26.04.2007, 10:16:41
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 20:10