Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: prosba o pomoc
Forum PHP.pl > Forum > Gotowe rozwiązania
SonGoace
Mam taki problem, nie znam sie na programowniu a potrzebny jest mi skrypt zamieniający polskie znaki na zwykłe literki ó=o ż=z itd. Chodzi o to ze mam napisy do filmów ale moje DVD nie obsługuje polskich znaków wiec chce wyeliminować polskie znaki z plików txt. Bardzo prosze o pomoc - bede wdzieczny
kszychu
Masz tu funkcję zamieniającą literki w iso na polskawe.

  1. <?php
  2. function iso2pl($tekst) {
  3. $iso88592=array (161,198,202,163,209,211,166,172,175,177,230,234,179,241,243,182,188,191);
  4. $pl =array (65, 67, 69, 76, 78, 79, 83, 90, 90, 97, 99, 101,108,110,111,115,122,122);
  5.  
  6. for($i = 0; $i < 18; $i++) {
  7. $tekst=str_replace(Chr($iso88592[$i]),Chr($pl[$i]),$tekst);
  8. }
  9.  
  10. return $tekst;
  11. } //iso2pl
  12. ?>


I jeszcze tablice dla win 1250
  1. <?php
  2. $pl =array (65, 67, 69, 76, 78, 79, 83, 90, 90, 97, 99, 101,108,110,111,115,122,122);
  3. $cp1250=array (165,198,202,163,209,211,140,143,175,185,230,234,179,241,243,156,159,191);
  4. ?>
SonGoace
niestety nie działa. mi chodzi zeby własnie usunącpolskie znaki, zeby np. ze słowa który zrobiło słowo ktory, czyli zeby skrypt wykrywał literke "ó" i zmieniał ją w "o"
kszychu
A co konkretnie nie działa? Bo ta funkcja na bank działa i robi właśnie to, co opisałeś.
SonGoace
wstawiłem do pliku a.php takie cos:
  1. <?php
  2.  
  3. $tekst=óżźćłń;
  4.  
  5. function iso2pl($tekst) {
  6. $iso88592=array (161,198,202,163,209,211,166,172,175,177,230,234,179,241,243,182,188,191);
  7. $pl =array (65, 67, 69, 76, 78, 79, 83, 90, 90, 97, 99, 101,108,110,111,115,122,122);
  8.  
  9. for($i = 0; $i < 18; $i++) {
  10. $tekst=str_replace(Chr($iso88592[$i]),Chr($pl[$i]),$tekst);
  11. }
  12.  
  13. return $tekst;
  14. } //iso2pl
  15.  
  16. ?>


po włączeniu na stronie nie pojawia sie nic. dopisałem na dole strony echo("$tekst"); ale pojawił sie niezmieniony tekst ?!?!?
kszychu
1. Pokaz jak wywołujesz tę funkcję.
2. MOże masz znaki w win 1250 i wtedy musisz użyć tych drugich tablic.
SonGoace
jak juz mówiłem jestem ciemny z php.
jak wywołuje funkcje ? właczam przeglądarke i wpisuje adres pliku php w który wkleiłem ten tój skrypik.

Powiem jak bym chciał to zrobić.

mam plik napisy.txt, wrzucam go na serwer. mam tez plik zmiana.php a w nim cos w stylu:

<?

$filesize=filesize("napisy.txt");
$file=fopen("napisy.txt","r");
flock($filez, 1);
$text=fread($file,$filesize);
flock($file, 3);
fclose($file);

tutaj jakis skrypt który zmienia literki w zmiennej $text

$file = fopen("napisy.txt","w");
fputs($file,"$text");
fclose($file);

?>
kszychu
To nie skrypcik, tylko funkcja, którą należy użyć we własnym skrypcie.
Przykład użycia:
  1. <?php
  2.  
  3. function iso2pl($tekst) {
  4. $iso88592=array (161,198,202,163,209,211,166,172,175,177,230,234,179,241,243,182,188,191);
  5. $pl =array (65, 67, 69, 76, 78, 79, 83, 90, 90, 97, 99, 101,108,110,111,115,122,122);
  6.  
  7. for($i = 0; $i < 18; $i++) {
  8. $tekst=str_replace(Chr($iso88592[$i]),Chr($pl[$i]),$tekst);
  9. }
  10.  
  11. return $tekst;
  12. }
  13.  
  14. function win2pl($tekst) {
  15. $pl =array (65, 67, 69, 76, 78, 79, 83, 90, 90, 97, 99, 101,108,110,111,115,122,122);
  16. $cp1250=array (165,198,202,163,209,211,140,143,175,185,230,234,179,241,243,156,159,191);
  17.  
  18. for($i = 0; $i < 18; $i++) {
  19. $tekst=str_replace(Chr($iso88592[$i]),Chr($pl[$i]),$tekst);
  20. }
  21.  
  22. return $tekst;
  23. }
  24.  
  25. $tekst = 'zażółć gęśłą jaźń';
  26. $tekst2 = iso2pl($tekst);
  27. $tekst3 = win2pl($tekst);
  28.  
  29. echo $tekst.'<br>'.$tekst2.'<br>'.$tekst3;
  30. ?>
militis
  1. <?
  2.  
  3. function remove_plchars($text)
  4. {
  5.  
  6. $array=array(
  7. 'ą'  => 'a',
  8. 'ć'  => 'c',
  9. 'ę'  => 'e',
  10. 'ł'  => 'l',
  11. 'ó'  => 'o',
  12. 'ś'  => 's',
  13. 'ż'  => 'z',
  14. 'ź'  => 'z');
  15.  
  16. return strtr($text, $array);
  17.  
  18. }//endfunction remove_plchars();
  19.  
  20. $text='ąćęłóśżź';
  21.  
  22. echo remove_plchars($text); //aceloszz
  23.  
  24. ?>
SonGoace
"militis" dzieki dokładnie o to mi chodziło - Krzychu, tobie tez dzieki za to ze sie starałes - ale czasami nie trzeba bardzo kombinować, najprostrze rozwiązania są najbardziej skuteczne smile.gif
Morek
Mam takie pytanie czy taki sam skrypt mógłby zamieniać całe wyrazy?! Bo chciałbym zrobić jakiś prosty cenzor do mojej Księgi Gości a nie bardzo wiem jak (dopiero zaczynam się uczyć php smile.gif),

będw wdzięczny za pomoc!
militis
Do cenzora juz lepiej imo uzyc preg_replace().
Morek
Dzięki wielkie, troche cieżko się w tym połapać ale myśle, że dam sobie radę dry.gif a przynajmniej tak mi się wydaje rolleyes.gif
miedzna
Cytat(SonGoace @ 2005-05-23 16:17:17)
Mam taki problem, nie znam sie na programowniu a potrzebny jest mi skrypt zamieniający polskie znaki na zwykłe literki ó=o ż=z itd. Chodzi o to ze mam napisy do filmów ale moje DVD nie obsługuje polskich znaków wiec chce wyeliminować polskie znaki z plików txt. Bardzo prosze o pomoc - bede wdzieczny

  1. <?php
  2.  
  3. $polskie  = array ('ą', 'Ą', 'ę', '', 'ć', 'Ć', 'ż', 'Ż', 'ź', 'Ź', 'ó', 'Ó', 'ł', 'Ł', 'ń', 'Ń', 'ś', 'Ś'); 
  4. $nie_polskie = array ('a', 'A', 'e', 'E', 'c', 'C', 'z', 'Z', 'z', 'Z', 'o', 'O', 'l', 'L', 'n', 'N', 's', 'S');
  5. $text = str_replace($polskie, $nie_polskie, $text);
  6. echo $text;
  7.  
  8. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.