Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> str_replace i białe znaki oraz łamane linie
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Jak za pomocą str_replace() zamienić np. taki tekst:

Kod
    <div id="cos1">
    <div id="cos2">
    </div>
    </div>


na:

Kod
    <div id="cos3">
    <div id="cos4">
    </div>
    </div>


Chodzi o to, że przed każdą tą linią występują białe znaki, a dodatkowo każdal linia jest łamana.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


nie widzę problemu:
  1. str_replace(' <div id="cos1">
  2. <div id="cos2">
  3. </div>
  4. </div>', ' <div id="cos3">
  5. <div id="cos4">
  6. </div>
  7. </div>', $string);


Ten post edytował Pawel_W 25.01.2013, 22:40:51
Go to the top of the page
+Quote Post
kristaps
post
Post #3





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Jak wyżej, ewentualnie jeżeli jest różna ilość znaków, to użyj wyrażenia regularnego.
Go to the top of the page
+Quote Post
Michael2318
post
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


No właśnie, że w ten sposób to nie chce działać :/

Może ja dam oryginał. Chcę zamienić to:

Kod
      <td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a><span class="nav">
        -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td>


na:

Kod
      <td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a>{NAV_CAT_DESC}</span></td>


Kod php odpowiedzialny za zamianę:

  1. $find[1] = ' <td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a><span class="nav">
  2. -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td>';
  3. $replacement[1] = ' <td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a>{NAV_CAT_DESC}</span></td>';
  4. $fp = fopen($path.'plik.tpl', "r");
  5. $old_data = fread($fp, filesize($path.'plik.tpl'));
  6. fclose($fp);
  7.  
  8. $old_data = str_replace($find[1], $replacement[1], $old_data, $count);
  9.  
  10. $fp = fopen($path.'plik.tpl', "w");
  11. fputs($fp, $old_data);
  12. fclose($fp);


Ten post edytował Michael2318 25.01.2013, 22:53:37
Go to the top of the page
+Quote Post
Pawel_W
post
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


masz taba w drugiej linijce kodu który chcesz zamienić, o ile się nie mylę
Go to the top of the page
+Quote Post
Michael2318
post
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


No tak, ale w czym to przeszkadza?
Go to the top of the page
+Quote Post
Pawel_W
post
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


jest chyba różnica pomiędzy
  1. $find[1] = ' <td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a><span class="nav">
  2. -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td>';

a
  1. $find[1] = ' <td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a><span class="nav">
  2. -> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td>';
Go to the top of the page
+Quote Post
Michael2318
post
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Nadal to samo, nie potrafi znaleźć tego fragmentu w pliku, mimo że on istnieje.
Go to the top of the page
+Quote Post
cudny
post
Post #9





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Po pierwsze nie używa się wyrażeń do zamiany HTML, od tego mamy DOM
Po drugie, str_replace() rozpoznaje białe znaki pisane jako: '\t\r\n '

Kombinuj gdzie jaki znak powinien się znajdować i zmień
Go to the top of the page
+Quote Post
Pawel_W
post
Post #10





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(cudny @ 26.01.2013, 01:40:32 ) *
Po drugie, str_replace() rozpoznaje białe znaki pisane jako: '\t\r\n '

g... prawda, string to string, nową linię możesz zapisać jako zwykły enter, albo jako \r\n, różnicy nie ma (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Kofel
post
Post #11





Grupa: Zarejestrowani
Postów: 99
Pomógł: 22
Dołączył: 14.12.2007
Skąd: Wyszków

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


Kod
Po pierwsze nie używa się wyrażeń do zamiany HTML, od tego mamy DOM

(IMG:style_emoticons/default/facepalmxd.gif)
Go to the top of the page
+Quote Post
cudny
post
Post #12





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Nie mam czasu dokształcać takich jak wy, ale widzę, że próbujecie być mądrzejsi, czego nie lubię.

W kodzie robienie znaku nowej linii enterem jest delikatnie mówiąc - nieestetyczne ! O zgrozo !
Do tego zapisz sobie enterem w systemie unixowym \r\n - musisz zmieniać w edytorze, a potem żeby znowu powrócić do samego \n znowu grzebanie
Cytat(Pawel_W @ 26.01.2013, 01:56:20 ) *
g... prawda, string to string, nową linię możesz zapisać jako zwykły enter, albo jako \r\n, różnicy nie ma (IMG:style_emoticons/default/wink.gif)



Czytaj !
http://stackoverflow.com/questions/1732348...-contained-tags
Cytat(Kofel @ 26.01.2013, 16:16:13 ) *
Kod
Po pierwsze nie używa się wyrażeń do zamiany HTML, od tego mamy DOM

(IMG:style_emoticons/default/facepalmxd.gif)


Ten post edytował cudny 30.01.2013, 00:08:16
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.08.2025 - 10:22