Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_replace()
DEXTER_c
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 8.12.2005

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


Używam pakietu phpdev.

Przy zbyt długim stringu, przepuszczenie go przez funkcję:
  1. <?php
  2. $code = preg_replace("/&lt;style(.|n)+&lt;/style&gt;/e", "", $code);
  3. ?>

Powoduje, że IE przestaje ładować stronę, a Mozilla wypisuje, ze "Dokument nie zawiera żadnych danych".

Sprawdzałem na innych serwerach (of.pl, klub.chip.pl) - działają na dłuższych stringach, ale też jest ograniczenie :-(

Raczej na pewno nie chodzi o zawartość stringu, bo aby zadziałało nie jest istotne co wytnę, tylko ile.

Jakieś ustawienia serwera musze zmienić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DEXTER_c
post
Post #2





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 8.12.2005

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


To nie jest konkretnie to, ale uproszczone, też nie działa na tej samej zasadzie.

Policzyłem też dokładną granicę, do której działa poprawnie: 3810 znaków (liczyłem oczywiście wynik funkcji oczysc()).

Aby był widoczny na forum rzeczywisty kod, musiałem zrobić odstępy pomiędzy & a #.

  1. <?php
  2. $code = '<style></style>'; // bardzo dużo 
  3.  
  4. function oczysc($code) {
  5.  
  6.  $code = str_replace('&', '&amp;', $code);
  7.  $code = str_replace("'", '& #39;', $code);
  8.  $code = str_replace("<", "&lt;", $code);
  9.  $code = str_replace(">", "&gt;", $code);
  10.  $code = str_replace('"', '&quot;', $code);
  11.  $code = str_replace('=', '& #61;', $code);
  12.  $code = str_replace(' ', '&nbsp;&nbsp;&nbsp;', $code); 
  13.  $code = str_replace('class', '& #99;& #108;& #97;& #115;& #115;', $code);
  14.  $code = str_replace('span', '& #115;& #112;& #97;& #110;', $code);
  15.  $code = str_replace('type', '& #116;& #121;& #112;& #101;', $code);
  16.  $code = str_replace('value', '& #118;& #97;& #108;& #117;& #101;', $code);
  17.  
  18.  return $code;
  19. }
  20.  
  21. $code = oczysc($code);
  22.  
  23. $code = preg_replace("/&lt;style(.|n)+&lt;/style&gt;/e", "", $code);
  24.  
  25. echo $code;
  26. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 21:12