Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] zasotosowanie preg_match dla funkcji str_replace
troian
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Witam, trafiła mi się tragiczna baza danych z ogłoszeniami, niestety jest ona zbyt duża aby ręcznie kopiować opisy i postanowiłem wyeksportować ją a następnie wygenerować nowe zapytania aby przenieść tą bazę, wszystko działa świetnie niestety osoba pisząca te ogłoszenia powstawiała znaczniki style dla elementów p,h1,h2,h3 itp i problem w tym że muszę się tego pozbyć jednak co wpis style to inne znaczniki chciałem najpierw zrobić to na zasadzie str_replace('font-size:15;','',$content); jednak ilość możliwych kombinacji z liczbą oraz spacjami po między 14px[space]; jest OGROMNA, dlatego chce się dowiedzieć czy w jakiś sposób można wykorzystać preg_match do wyszukiwania styke"[zwartosc]" i całkowitego jego usuwania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kapslokk
post
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


http://stackoverflow.com/questions/5517255...-from-html-tags

  1. $output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);
Go to the top of the page
+Quote Post
troian
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Cytat(kapslokk @ 14.10.2016, 11:18:27 ) *
http://stackoverflow.com/questions/5517255...-from-html-tags

  1. $output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);


Dzięki wielkie, nawet nie wpadło mi do głowy aby poszukać czegoś takiego w google
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Nie lepiej użyć parsera DOM? Wyrażenia regularne do zmian w drzewie dokumentu to jest najczęściej kiepski pomysł i w tym przypadku jest również kiepski. Co na przykład, jeśli zamiast cudzysłowu są apostrofy? Za dużo jest pułapek w takiej zamianie na pałę, no ale oczywiście jest pytanie - jest odpowiedź.

Jeśli ktoś zapyta: która szczoteczka do zębów jest najlepsza do umycia toalety, odpowiedzi nie wyjdą najczęściej poza świat mycia toalety szczoteczką, a to błąd.

Moim zdaniem, jeśli jest jakakolwiek szansa, że są inne style, które powinny zostać zachowanie, powinieneś przejść drzewo parserem DOM w poszukiwaniu wszystkich interesujących Cię elementów z atrybutem style, a następnie wyciąć z nich tylko te style, które mają zostać usunięte. Jeśli nic nie zostanie, dopiero wtedy usunąć atrybut style.
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Jest też jeszcze jedna opcja. HTMLPurifier, przeczyścić nim cały kod, użyć Tidy (bo tu najwyraźniej może być cokolwiek w tym niepoprawny tekst) a niedozwolone tagi i atrybuty usunąć.
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 - 08:49