troian
14.10.2016, 10:16:37
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?
kapslokk
14.10.2016, 10:18:27
troian
14.10.2016, 10:31:54
Cytat(kapslokk @ 14.10.2016, 11:18:27 )

Dzięki wielkie, nawet nie wpadło mi do głowy aby poszukać czegoś takiego w google
SmokAnalog
14.10.2016, 11:10:25
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.
viking
14.10.2016, 11:19:33
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ąć.