Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Czemu nie działa str_replace ?
esesjot
post 27.07.2004, 15:30:59
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 26.07.2004

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


Hej! mam taki skrypcik php, który pokazuje to co jest pliku txt, ale nie wiem czemu nie zamienia buziek na emotikony. Pomożecie?
  1. Oto skrypt php:
  2. <?php
  3.     
  4.  
  5. $plik = &#092;"text.txt\";
  6.  
  7. if (filesize($plik) == 0) {
  8.     echo &#092;"<table cellspacing=0 cellpadding=0 border=0 align=center><tr>\"
  9.     .&#092;"<td class=ramka><font color=#FF0000> Katalog jest pusty!</font>\"
  10.     .&#092;"</td></tr></table>\";
  11. }
  12. $file = file($plik);
  13. $count = 0;
  14. for ($i=0;$i<count($file);$i++) {
  15.     $grupa = split(&#092;"|\", chop($file[$i]));
  16.     $split = explode(&#092;"||\", $file[$i]);
  17.     $info = strip_tags($info,&#092;"\");
  18.     $info = str_replace(&#092;":)\",\"<img src='smilies/smile.gif'>\",$split[2]);
  19.     $info = str_replace(&#092;":(\",\"<img src='smilies/sad.gif'>\",$split[2]);
  20.     $info = str_replace(&#092;":P\",\"<img src='smilies/bigrazz.gif'>\",$split[2]);
  21.     $info = str_replace(&#092;":D\",\"<img src='smilies/biggrin.gif'>\",$split[2]);
  22.     $info = str_replace(&#092;"8)\",\"<img src='smilies/cool.gif'>\",$split[2]);
  23.     $info = str_replace(&#092;":@\",\"<img src='smilies/mad.gif'>\",$split[2]);
  24.     $info = str_replace(&#092;";)\",\"<img src='smilies/wink.gif'>\",$split[2]);
  25.     $info = str_replace(&#092;"?questionmark.gif\",\"<img src='smilies/confused.gif'>\",$split[2]);
  26.     $count++;
  27.     clearstatcache();
  28.     if (filesize($plik) != 0) {
  29.         echo &#092;"<table cellspacing=0 cellpadding=0 boreder=0 width=100%>
  30.         <tr><td class=ramka> Nick: <b style=&#092;"color: #3399CC\">$split[0]</b>\"
  31.         .str_replace(&#092;"\",\"\",$split[3]).\"<br>E-mail: <a href='mailto:$split[1]'>$split[1]</a>\".\"<br>Treść: $info\",\"<hr>\";
  32.  
  33.         }
  34. }
  35.  
  36. ?>


a to kawałek pliku txt:
Kod
gsr||sgd||Ń||
gsr||sgd||gsd||
gdsfd||gds||sgfd||
fsf||sfds||_:)_:(||
fsf||sfds||||
TooOld||wiesz||:)||
vsfd||vscv||:)||
vsfd||vscv||:)||
Turbo||turbo@malpa.pl||:)||||
Turbo||turbo@malpa.pl||:)||:)||


Dzięki!

Ten post edytował esesjot 27.07.2004, 15:40:43
Go to the top of the page
+Quote Post
Wedrowiec
post 27.07.2004, 15:40:19
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Łódź

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


za kazdym razem "nadpisujesz" zamianę.

Po pierwszym wywołaniu powinieneś zamieniać nie $split[2] a $info
Go to the top of the page
+Quote Post
esesjot
post 27.07.2004, 15:42:22
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 26.07.2004

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


Nadal nie bardzo rozumiem (początkujący).
Go to the top of the page
+Quote Post
Wedrowiec
post 27.07.2004, 15:47:41
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Łódź

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


ok:
Kod
$info = str_replace(":)","<img src='smilies/smile.gif'>",$split[2]);
   $info = str_replace(":(","<img src='smilies/sad.gif'>",$split[2]);
   $info = str_replace(":P","<img src='smilies/bigrazz.gif'>",$split[2]);

1 linijka : pod $info przypisujesz zmieniony $split2, tak?
2 linijka : pod $info przypisujesz zmieniony ... $split2 - czyli tracisz zmiane z linijki 1

Kod
$info = str_replace(":)","<img src='smilies/smile.gif'>",$split[2]);
   $info = str_replace(":(","<img src='smilies/sad.gif'>",$info);
   $info = str_replace(":P","<img src='smilies/bigrazz.gif'>",$info);


czyli dokonujesz 1 zmiany, drugą zmianę wykonujesz na ZMIENIONYM stringu czyli $info

//update
na końcu wyświetlasz oczywiście info a nie $split2

str_replace zwraca Ci wynik który przypisujesz pod zmienną $info, nie modyfikuje samego $split[2]

Ten post edytował Wedrowiec 27.07.2004, 15:49:27
Go to the top of the page
+Quote Post
esesjot
post 27.07.2004, 15:57:35
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 26.07.2004

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


Już wszystko działa exclamation.gif! Dzięki ! guitar.gif

Jeszcze mam pytanko

Co zrobić by w txt spacja nie zapisywała się jako "_" , jeśli kod skryptu zapisującego jest taki:
  1. <?
  2. $nick = $_POST[&#092;"nick\"];
  3. $e_mail = $_POST[&#092;"e_mail\"];
  4. $tresc = $_POST[&#092;"tresc\"];
  5. if (($nick == &#092;"\")||($e_mail == \"\")||($tresc == \"\")) {
  6. echo &#092;"<table cellspacing=0 cellpadding=0 boreder=0 align=center><tr><td class=ramka align=center><font color=#FF0000>Wypełnij wszystkie pola formularza!</font><br><br><a href=\"javascript:history.back()\\">Popraw !</a></td></tr></table>\";
  7.  
  8. } 
  9. if (($nick != &#092;"\")&&($e_mail != \"\")&&($tresc != \"\")) {
  10. //wpis w kategorii
  11. $info = strip_tags($info,&#092;"\");
  12. $info = str_replace(&#092;":)\",\"<img src='smilies/smile.gif'>\",$info);
  13. $info = str_replace(&#092;":(\",\"<img src='smilies/sad.gif'>\",$info);
  14. $info = str_replace(&#092;":P\",\"<img src='smilies/bigrazz.gif'>\",$info);
  15. $info = str_replace(&#092;":D\",\"<img src='smilies/biggrin.gif'>\",$info);
  16. $info = str_replace(&#092;"8)\",\"<img src='smilies/cool.gif'>\",$info);
  17. $info = str_replace(&#092;":@\",\"<img src='smilies/mad.gif'>\",$info);
  18. $info = str_replace(&#092;";)\",\"<img src='smilies/wink.gif'>\",$info);
  19. $info = str_replace(&#092;"?questionmark.gif\",\"<img src='smilies/confused.gif'>\",$info);
  20. $nick = htmlspecialchars($nick);
  21. $e_mail = htmlspecialchars($e_mail);
  22. $tresc = htmlspecialchars($tresc);
  23. $dane = &#092;"$nick||$e_mail||$tresc||n\";
  24. $dane = str_replace(&#092;" \",\"_\",$dane);
  25. $dane = strtr(StripSlashes($dane), &#092;"ąśźĄŚŹ\", \"ąśźĄŚŹ\");
  26. $file = &#092;"text.txt\";
  27. $fp = fopen(&#092;"$file\", \"r+\");
  28. $dane=$dane.fread($fp, filesize($file));
  29. rewind($fp);
  30. flock($fp, 2);
  31. fputs($fp, &#092;"$dane\");
  32. flock($fp, 3);
  33. fclose($fp);
  34.  
  35. header(&#092;"Location: pokaz.php\");
  36. }
  37.  
  38.  
  39. ?>


Dzięki

Ten post edytował esesjot 27.07.2004, 16:02:14
Go to the top of the page
+Quote Post
Wedrowiec
post 27.07.2004, 16:08:51
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Łódź

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


oj kolego byś choć na chwilę się przyjrzał:

Kod
$dane = str_replace(" ","_",$dane);


wywal tą linijkę
Go to the top of the page
+Quote Post
esesjot
post 27.07.2004, 16:34:26
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 26.07.2004

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


Dzięki - moje gapiostwo (bo sam sobie wcześniej wpisałem to _ i zapomniałem o tym) smile.gif Już nie męcze Cię smile.gif guitar.gif

Ten post edytował esesjot 27.07.2004, 17:25:36
Go to the top of the page
+Quote Post
rzseattle
post 27.07.2004, 18:18:15
Post #8





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


php -> php Poczatkujacy


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
kszychu
post 28.07.2004, 09:18:36
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Z powodu powstającego wycieku śmietanki zamykam.
Aha, autorzy pewnie się nie obrażą, że usunę te ostatnie OTy. Sami na pewno by o to poprosili w dobrej wierze; nie chcieli przecież nabijać sobie postów. aaevil.gif


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 1.07.2025 - 03:55