Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Falowanie tekstu
MagicianVH
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.08.2010

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


Jak mogę otrzymać w PHP efekt "falowania tekstu"? Przykład:
Łańcuch wejściowy: Forum PHP jest super.
Łańcuch wyjściowy: FoRuM pHp JeSt SuPeR

Ten post edytował MagicianVH 31.08.2010, 12:39:48
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Jak zobaczyłem tytuł to się zastanawiałem co masz na myśli... Jak zobaczyłem treść to już wiedziałem: ty się po prostu bałeś użyć słowa POKEMON (IMG:style_emoticons/default/winksmiley.jpg)

To nie jest falowany tekst a najzwyklejszy w świecie pokemonowy tekst (IMG:style_emoticons/default/smile.gif)

Jak zrobić? Normalnie lecisz po kolei po tekscię i na zmianę jedną literę robisz dużą a drugą małą.
Go to the top of the page
+Quote Post
flashdev
post
Post #3





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


  1. $str = strtolower($str);
  2. for( $i = 0; $i < strlen($str); $i += 2 ){
  3. $str[$i] = strtoupper($str[$i]);
  4. }
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Yyy... w pętli modyfikujesz każdy ze znaków? Jeżeli to parzyste wywołanie bloku pętli to zamieniasz na wielką literę, jeżeli nieparzyste to na małą?
Go to the top of the page
+Quote Post
MagicianVH
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.08.2010

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


Tak właśnie robiłem w C, ale nie widziałem, że w PHP mogę operować na łańcuchu tak jak na tablicy. (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
athei
post
Post #6





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


Rozwiązanie flashdev nie będzie działać prawidłowo. Przelatywanie po tekście jak po tablicy gdy będą polskie znaki nie zadziała tak jak trzeba.
Po drugie musisz sprawdzać czy jest spacja, bo wyjdzie coś takiego "FoRuM PhP" zamiast "FoRuM pHp".
Użyj http://www.php.net/manual/en/function.substr.php#93884 (w funkcjach mb_ dodaj jeszcze , 'utf-8') oraz
  1. $str2 = "";
  2. $j = 0;
  3. for($i=0; $i<mb_strlen($str, 'utf-8'); $i++)
  4. {
  5. if( charAt($str,$i) == ' '){
  6. $str2.= charAt($str,$i);
  7. continue;
  8. }
  9.  
  10. if($j%2==0) {
  11. $str2.= mb_convert_case(charAt($str,$i), MB_CASE_UPPER, 'UTF-8');
  12. $j++;
  13. }
  14. else {
  15. $str2.= mb_convert_case(charAt($str,$i), MB_CASE_LOWER, 'UTF-8');
  16. $j++;
  17. }
  18.  
  19. }


Ten post edytował athei 31.08.2010, 13:12:39
Go to the top of the page
+Quote Post
flashdev
post
Post #7





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(athei @ 31.08.2010, 14:03:23 ) *
Rozwiązanie flashdev nie będzie działać prawidłowo. Przelatywanie po tekście jak po tablicy gdy będą polskie znaki nie zadziała tak jak trzeba.


Zgadza się, wiedziałem o tym pisząc ten kod. tutaj rozwiązanie

Cytat(athei @ 31.08.2010, 14:03:23 ) *
Po drugie musisz sprawdzać czy jest spacja, bo wyjdzie coś takiego "FoRuM PhP" zamiast "FoRuM pHp".


Co za różnica? I jedno i drugie to śmieci...

Edit:
Cytat(athei @ 31.08.2010, 14:03:23 ) *

I tak nie uwzględniłeś kropek, enterów, przecinków, dwukropków, apostrofów etc.

Ten post edytował flashdev 31.08.2010, 14:05:43
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: 22.12.2025 - 19:08