Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Błąd w używaniu funk. str_replace ?
Forum PHP.pl > Forum > Przedszkole
Setesh
Mam mały problem... (i tak prawie zawsze sad.gif )

Chciałem zastosować małe udogodnienie dla siebie do stronki aby mi zmieniała kodowanie z Win na ISO - i szło pięknie smile.gif Potem wpadłem na pomysł aby zmieniać też sposób wyświetlania danych np jeżeli w tekście znajdzie się wyrażenie "true" to niech je pogrubi i... i tu właśnie problem ponieważ... już to mi nie działa i nie wiem czemu sad.gif

Może ktoś mi wyjaśnić co zrobić abym mógł to poprawić lub podsunie jakieś rozwiązanie ? sad.gif

Code :

  1. <?php
  2. function WinToCPP($NapisDoZmiany)
  3. {
  4.  $Win = array(
  5. 'Ą',
  6. 'ą',
  7. 'Ś',
  8. 'ś',
  9. 'Ź',
  10. 'ź', // koniec konwersji WinToISO
  11. ' int ',
  12. ' bool ',
  13. ' true ',
  14. ' false ',
  15. ' void __fastcall '
  16.  );
  17.  $CPP = array(
  18. 'ˇ',
  19. 'ą',
  20. 'Ś',
  21. 'ś',
  22. 'Ź',
  23. 'Ľ',
  24. '<b> int </b>',
  25. '<b> bool </b>',
  26. '<b> true </b>',
  27. '<b> false </b>',
  28. '<b> void __fastcall </b>'
  29.  );
  30.  return trim(str_replace($Win, $CPP, $NapisDoZmiany));
  31. }
  32. ?>


Wywołuję :

  1. <?php
  2. $text = WinToCPP($text);
  3. echo $text;
  4. ?>

Lub po prostu :
  1. <?php
  2. echo WinToCPP($text);
  3. ?>


Nie wiem jak to ugryźć już nie mam sił na ten problem choć pewnie problem jest prosty sad.gif
MacPain
Tu masz przyklad z http://pl.php.net/manual/pl/function.str-replace.php
  1. <?php
  2. // Provides: You should eat pizza, beer, and ice cream every day
  3. $phrase = "You should eat fruits, vegetables, and fiber every day.";
  4. $healthy = array("fruits", "vegetables", "fiber");
  5. $yummy  = array("pizza", "beer", "ice cream");
  6.  
  7. $newphrase = str_replace($healthy, $yummy, $phrase);
  8. ?>
Crom
Zwróć uwagę ze wymieniasz razem ze spacjami. Czyli kod ten nie zadziała poprawnie jeśli wymieniany wyraz jest na początku lub końcu stringa, a także gdy wyrazy występują bezpośrednio obok siebie.
Setesh
O dziwo zadziałało mi ale jak pisał Crom czasami wali sie jak w kodzie było np "=true;". Poprawiłem i jako tako działa smile.gif

Code :

  1. <?php
  2. function WinToCPP($NapisDoZmiany)
  3. {
  4.  $Win = array(
  5. 'Ą',
  6. 'ą',
  7. 'Ś',
  8. 'ś',
  9. 'Ź',
  10. 'ź', // koniec konwersji WinToISO
  11. ' ',
  12. '  ',
  13. ' if',
  14. '&nbsp;if',
  15. 'else',
  16. 'int ',
  17. 'bool ',
  18. 'char',
  19. 'true',
  20. 'false',
  21. 'switch',
  22. 'case',
  23. 'break',
  24. 'void',
  25. 'new',
  26. 'delete',
  27.  '__fastcall',
  28. 'UWAGA'
  29.  );
  30.  $CPP = array(
  31. 'ˇ',
  32. 'ą',
  33. 'Ś',
  34. 'ś',
  35. 'Ź',
  36. 'Ľ',
  37. '&nbsp;&nbsp;',
  38. '&nbsp;&nbsp;&nbsp;',
  39. '<b> if</b>',
  40. '<b>&nbsp;if</b>',
  41. '<b>else</b>',
  42. '<b>int </b>',
  43. '<b>bool </b>',
  44. '<b>char</b>',
  45. '<b>true</b>',
  46. '<b>false</b>',
  47. '<b>switch</b>',
  48. '<b>case </b>',
  49. '<b>break</b>',
  50. '<b>void</b>',
  51. '<b>new</b>',
  52. '<b>delete</b>',
  53. '<b>__fastcall</b>',
  54. '<font color=red><b>UWAGA</b></font>'
  55.  );
  56.  return trim(str_replace($Win, $CPP, $NapisDoZmiany));
  57. }
  58. ?>


A jak zamienić napis między znakami (") lub (') tak aby miały kolor niebieski ?
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.