Changeset 5435
- Timestamp:
- 01/27/12 10:16:45 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r5420 r5435 1126 1126 else 1127 1127 { 1128 if ( $tmp->host != 'unspecified-domain')1128 if (isset($tmp->host) && $tmp->host != 'unspecified-domain') 1129 1129 $return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host; 1130 1130 else … … 1855 1855 1856 1856 $regs_found = array(); 1857 $tags_found = preg_match_all("@<style[^>]*>.*?</style[^>]*>@s ", $body, $regs_found);1857 $tags_found = preg_match_all("@<style[^>]*>.*?</style[^>]*>@si", $body, $regs_found); 1858 1858 $wrapper_class = 'ExpressoCssWrapper' . time(); 1859 1859 1860 foreach ($regs_found as $block_found) { 1861 if(!isset($block_found[0])) continue; 1862 1863 $n_start = strpos($block_found[0], '>') + 1; 1864 $n_length = strrpos($block_found[0], '<') - $n_start; 1865 $bf_innerHTML = substr($block_found[0], $n_start, $n_length); 1866 1867 $bf_innerHTML = mb_ereg_replace('<!--', '', $bf_innerHTML); 1868 $bf_innerHTML = mb_ereg_replace('-->', '', $bf_innerHTML); 1869 1870 $css->parse($bf_innerHTML); 1871 1872 $prefix = ".$wrapper_class "; 1873 if (isset($css->css[41]) && count($css->css[41] > 0)) 1874 foreach ($css->css[41] as $key => $value) { 1875 //explode multiple selectors per block 1876 $selectors = explode(',', $key); 1877 1878 foreach ($selectors as $selector) { 1879 if (ereg('\*', $key)) { 1880 //skip selecto '*' 1881 continue; 1860 foreach ($regs_found as $k => &$v) { 1861 foreach ($v as $kk => $vv) { 1862 $n_start = strpos($vv, '>') + 1; 1863 $n_length = strrpos($vv, '<') - $n_start; 1864 $bf_innerHTML = substr($vv, $n_start, $n_length); 1865 $bf_innerHTML = mb_ereg_replace('<!--', '', $bf_innerHTML); 1866 $bf_innerHTML = mb_ereg_replace('-->', '', $bf_innerHTML); 1867 1868 $css->parse($bf_innerHTML); 1869 1870 $prefix = ".$wrapper_class "; 1871 if (isset($css->css[41]) && count($css->css[41] > 0)) 1872 foreach ($css->css[41] as $key => $value) { 1873 //explode multiple selectors per block 1874 $selectors = explode(',', $key); 1875 1876 foreach ($selectors as $selector) { 1877 if (ereg('\*', $key)) { 1878 //skip selecto '*' 1879 continue; 1880 } 1881 1882 $selector = eregi_replace('[^#\.]*body.*', '', $selector); 1883 $css->css[41][$prefix . trim($selector)] = $value; 1882 1884 } 1883 1884 $selector = eregi_replace('[^#\.]*body.*', '', $selector); 1885 $css->css[41][$prefix . trim($selector)] = $value; 1885 unset($css->css[41][$key]); 1886 1886 } 1887 unset($css->css[41][$key]); 1888 } 1889 1890 $body = str_replace($block_found, '<style>' . $css->print->plain() . '</style>', $body); 1891 } 1892 1893 1887 1888 $body = str_replace($vv, '<style>' . $css->print->plain() . '</style>', $body); 1889 } 1890 } 1891 1894 1892 // Malicious Code Remove 1895 1893 $dirtyCodePattern = "/(<([\w]+[\w0-9]*)(.*)on(mouse(move|over|down|up)|load|blur|change|error|click|dblclick|focus|key(down|up|press)|select)([\n\ ]*)=([\n\ ]*)[\"'][^>\"']*[\"']([^>]*)>)(.*)(<\/\\2>)?/misU";
Note: See TracChangeset
for help on using the changeset viewer.