Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in
lolo121
post 21.12.2014, 12:01:32
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2014

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


hejka. otoz zainstalowalem xampp i zainstalowalem swój autorski skrypt forum. porzuciłem projekt juz dobry czas temu i teraz postanowilem go wznosic. wiedza na ten temat juz spadla. po instalacji forum w wyswietleniu posta pokazuje mi sie nad nim



z tego rozumiem, ze funkcja preg_replace() jest przestarzala i trzeba ją zastapic funkcją preg_replace_callback. po zastąpieniu jednak występują kolejne błędy. o to fragment kodu powodujący błędy (wrzuciłbym cały plik, ale za długi post...)

Cytat
// Preappend http:// to url address if not present
$s = preg_replace('/\[url\=([^(http)].+?)\](.*?)\[\/url\]/i', '$2', $s);
$s = preg_replace('/\[url\]([^(http)].+?)\[\/url\]/i', '$1', $s);

// Add line breaks
$s = nl2br($s);

// Remove the trash made by previous
$s = preg_replace(self::$lineBreaks_search, self::$lineBreaks_replace, $s);

// Parse bbcode
$s = preg_replace(self::$simple_search, self::$simple_replace, $s);

// Parse [list] tags
$s = preg_replace('/\[list\](.*?)\[\/list\]/sie', '"<ul>\n".self::process_list_items("$1")."\n</ul>"', $s);
$s = preg_replace('/\[list\=(disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-alpha|lower-latin|upper-alpha|upper-latin|hebrew|armenian|georgian|cjk-ideographic|hiragana|katakana|hiragana-iroha|katakana-iroha|none)\](.*?)\[\/list\]/sie',
'"<ol style=\"list-style-type: $1;\">\n".self::process_list_items("$2")."\n</ol>"', $s);


proszę o pomoc a najlepiej o przerobienie tej funkcji, by dzialala bez problemów. dodam tylko, że pod starszą wersją php wszystko działa ok, czyli ta najnowsza musiała to spowodować.

później popatrzę za innym systemem parsowania jednak na razie niech zostanie ten bbcode. muszę sobie wszystko przypomnieć wink.gif

Ten post edytował lolo121 21.12.2014, 12:30:32
Go to the top of the page
+Quote Post
jackraymund
post 21.12.2014, 12:47:33
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

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


W callback niema niczego nadzwyczajnego. Natomiast to formatowanie jest troszkę dziwne. I ciężko mi określić co to ma dokładnie zrobić.
  1. // Preappend http:// to url address if not present
  2. $s = preg_replace('/\[url\=([^(http)].+?)\](.*?)\[\/url\]/i', '$2', $s);
  3. $s = preg_replace('/\[url\]([^(http)].+?)\[\/url\]/i', '$1', $s);

Z komentarza wynika że ma dodać http do linku...
Natomiast zamiast linku zostawia opis linku, a link wywala.
Osobiście tą linijkę bym zamienił na
  1. $s = 'jotpe';
  2. echo '<pre>';
  3. '/\[url\=([^(http)].+?)?\](.*?)\[\/url\]/i',
  4. function ($matches) {
  5. if(is_array($matches)) return "}]{$matches[2]}";
  6. },
  7. $s
  8. );

Chodź możliwe ze chodzi o coś innego.


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post
lolo121
post 22.12.2014, 13:01:28
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2014

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


Wrzucę cały kod

http://wklej.to/Ybi2A

Skrypt służy do parsowania BBCode jak [ b] [ /b], [ i] [ /i] itp. Nie jest to moje brałem to z internetu


Przez te błędy deprecated przestały działać pogrubienia pochylenia i inne

@odświeżam

Post wyżej wrzuciłem cały kod tego pliku

Ten post edytował lolo121 21.12.2014, 12:57:05
Go to the top of the page
+Quote Post
sazian
post 22.12.2014, 21:24:20
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


wywal "e" przełączników wyrażenia
'/\[img (.*?)\](.*?)\[\/img\]/ise',
Go to the top of the page
+Quote Post
lolo121
post 27.12.2014, 14:16:21
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2014

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


Cytat(sazian @ 22.12.2014, 21:24:20 ) *
wywal "e" przełączników wyrażenia
'/\[img (.*?)\](.*?)\[\/img\]/ise',


Jest postęp - teraz wyświetlają się cztery błędy o treści jak w temacie z linijkach 203, 203, 209, 211
Go to the top of the page
+Quote Post
sazian
post 27.12.2014, 16:34:50
Post #6





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


wywal wszystkie "e"

'/\[code\](.+?)\[\/code\]/sie',
Go to the top of the page
+Quote Post

Reply to this 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: 14.08.2025 - 11:16