Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zamiana tylko wewnatrz wybranego fragmetu tekstu
Forum PHP.pl > Forum > PHP
dtb
mam sobie string:

  1. <?php
  2. $text = 'Jakis {} tam tekst < cos} { tam> i t{ak d}alej ...';
  3. ?>


Ja zrobic aby pozamienialo { i } na \{ i \} ale uwaga: tylko w tekscie pomiedzy < i >. Oczekiwany efekt:

  1. <?php
  2. $text = 'Jakis {} tam tekst < cos} { tam> i t{ak d}alej ...';
  3. ?>
vihoo
Zrobiłbym tak:
  1. <?php
  2.  
  3. $text = 'Jakis {} tam tekst < cos} { tam> i t{ak d}alej ...';
  4. $text2='';
  5. $zamieniaj=false;
  6. for($x=0;$x<strlen($text);$x++)
  7. {
  8. switch ($text[$x])
  9. {
  10. case '<':
  11. $zamieniaj=true;
  12. break;
  13. case '>':
  14. $zamieniaj=false;
  15. break;
  16. case '{':
  17. case '}':
  18. if ($zamieniaj) 
  19. {
  20. $text2.='/';
  21. }
  22. }
  23. $text2.=$text[$x];
  24. }
  25. echo $text2;
  26.  
  27. ?>
dtb
dzieki. myslalem o czym podobnym, ale jest bardzo maly drobiazg. co gdy zamiast znakow < i > chce uzyc <zm> i </zm> ?
vihoo
Tego nie było w temacie blink.gif
Jak coś wymyślę to odpowiem.
FiDO
  1. <?php
  2. echo preg_replace('#<.*>#Ue', 'str_replace(array("{","}"), array("{", "}"), "0")', $text);
  3.  
  4. ?>
dtb
wiem że jestem upierdliwy, ale twoj kod nie dziala w przypadku gdy $text ma wiele linijek
FiDO
dodaj flage s do wyrazenia i powinno byc ok
dtb
thx
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.