Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generowanie na ASCII oraz pisanie na wspak
Diablos
post
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


Ejo!

Poniewaz chcialem przetestowac kilka funkcji to zaczalem pisac sobie dla zabawy, male skrypty.

1. Pisanie na wspak.

  1. <?php
  2.  
  3. $string = 'Elo na wspak.';
  4.  
  5.  
  6.  
  7. for ( $i = 0; $i <= strlen($string); $i++ )
  8.  {
  9. echo substr($string, -1, 1);
  10. $string = str_replace(substr($string, -1, 1),'',$string);
  11.  }
  12.  
  13.  
  14. ?>


Niestety wynikiem jest tylko:
Cytat
.kapsw
Nie za bardzo rozumiem czemu.

2. Generowanie zdan na ASCII

  1. <?php
  2. $string = 'Elo na wspak.';
  3.  
  4. for ( $i = 0; $i < strlen($string); $i++ )
  5.  {
  6. echo ' ' . ord(substr($string, 0, 1));
  7. $string = str_replace(substr($string, 0, 1),'',$string);
  8.  }
  9. ?> 


Wynikiem jest
Cytat
69 108 111 32 110 97
co oznacza ,ze przetlumaczone zostalo tylko 6 znakow (Elo na). Tez nie wiem czemu nie caly tekst :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
sobstel
post
Post #2





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


bledy w logice

po pierwsze : w petli for fragment "$i <= strlen($string)" powoduje ze przy kazdej itaracji sprawdzasz dlugosc ciagu $string, a ze jego dlugosc zmniejsza sie poprzez wykonanie str_replace to robionych jest tylko 6 iteracji. zrób tak : for ($i=0, $count=strlen($string); $i++).

po drugie : str_replace powoduje usuniecie wszystkich wystapien danego znaku, czyli np. str_replace('a','','agrafka') zwroci 'grfk'

po trzecie : jesli rzeczywiscie potrzebuje do czegos odwrocenia ciagu uzyj strrev" title="Zobacz w manualu php" target="_manual
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. <?php
  2. function reverseStr( $str )
  3. {
  4. $tmp = '';
  5. for ( $i = strlen( $str ) - 1; $i >= 0; $i-- )
  6. {
  7. $tmp .= $str{ $i };
  8. }
  9. return $tmp;
  10. }
  11.  
  12. ?>
Go to the top of the page
+Quote Post
gekon
post
Post #4





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


Ja na ASCII zamieniam tak:
  1. <?php
  2.  
  3. function toASCII($string = ''){
  4. $i=0;
  5.  while($string[$i]){
  6. $out .= '&#'.ord($string[$i]).';';
  7. $i++;
  8.  }
  9. return $out;
  10. }
  11.  
  12. ?>
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. <pre><?php
  2.  
  3. function Xord( &$char, $key )
  4. {
  5. $char = ord( $char );
  6. }
  7.  
  8. function convertToAsciiCodes( $txt )
  9. {
  10. $arrChars = str_split( $txt ); // PHP5
  11. array_walk( $arrChars, 'Xord' );
  12.  
  13. return $arrChars;
  14. }
  15.  
  16. $text = 'test konwersji na kody ascii';
  17. $codes = convertToAsciiCodes( $text );
  18. print_r( $codes );
  19. print( implode( ' ', $codes ) . '<br />' );
  20. ?></pre>
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.09.2025 - 13:36