Autor Zpráva
Petr Ká
Profil
Ahoj,

potřeboval bych poradit s ukládáním a úpravou dat do databáze z wysivygu... Pokud uživatel někde zkopíruje text včetně vlastnosti background nebo background-color potřeboval bych je odstranit. Je to možné?

Děkuji
Taps
Profil
Petr Ká:
pokud používáš TinyMCE, tak můžeš zkusit http://www.tinymce.com/wiki.php/Plugin3x:paste
Petr Ká
Profil
Právě že ne, používám jQuery scEditor

Spíš bych uvítal nějaké PHP řešení při zpracování před uložením dat do DB
Taps
Profil
Petr Ká
zkus
$output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);
Str4wberry
Profil
Pročištění HTML kódu
Petr Ká
Profil
Taps:
No to ale přepíšu celej style ne?

Potřeboval bych v tom style vyhledat :

background* po středník (pokud je) a nahradit ho za "" (prázdný znak, smazat)

Str4wberry:
No to je vážně kanon na mouchu - potřebuji jen smazat bg vlastnost :)
DJ Miky
Profil
Mohlo by to jít takhle (nutné PHP >= 5.3):
$output = preg_replace_callback(
    '~style="[^"]+"|style=\'[^\']+\'~is',
    function($match) {
        return preg_replace(
            '~(?<=["\';])\s*background[-a-z]*\s*:[^;]*(?:;|(?=[\'"]))~is',
            '',
            $match[0]
        );
    },
    $input
);
Zkoušel jsem to pro běžné případy (více vlastností, na začátku/konci style, bez koncového středníku). Neporadí si to s případem:
background-image: url('adresa;parametr'); (středník v adrese obrázku na pozadí, případně ještě bez apostrofů okolo),
který ale není běžný.
Vnořený regulární výraz je kvůli možnosti více background* vlastností v rámci jednoho style. Možná by to šlo nějak napasovat i do jednoho.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0