예제 #1
0
 static function rtlCSS($css_data, $escaped = array('.no-convert'))
 {
     $dir = 'RTL';
     //$css_data = file_get_contents($css_file);
     //remove comments
     $css_data = preg_replace('/\\/\\*(.*)?\\*\\//Usi', '', $css_data);
     //rewrite padding,margin,border
     $css_data = preg_replace('/(\\h*)(padding|margin|border):(\\d+.+)\\h+(\\d+.+)\\h+(\\d+.+)\\h+(\\d+.+)\\h*;/Ui', "\\1\\2-right:\\4;\\1\\2-left:\\5;", $css_data);
     //rewrite border-radius
     $css_data = preg_replace('/(\\h*|)border-radius:(.+)\\h+(.+)\\h+(.+)\\h+(.+)\\h*;/Ui', "\\1border-top-left-radius:\\2;\\1border-top-" . "right-radius:\\3;\\1border-bottom-right-radius:\\4;\\1border-bottom-left-radius:\\5;", $css_data);
     //start parsing css file
     $css_data = preg_replace('/(@media .+){(.+)}\\s*}/Uis', '\\1$$$\\2}$$$', $css_data);
     preg_match_all('/(.+){(.+)(}\\$\\$\\$|})/Uis', $css_data, $css_arr);
     $css_flipped = "/* Created by flipcss.php 0.7 by daif alotaibi (http://daif.net) */\n\n";
     foreach ($css_arr[0] as $key => $val) {
         //ignore escaped classes
         if (!preg_match('/(' . implode('|', array_map('preg_quote', $escaped)) . ')/i', $css_arr[1][$key])) {
             if (preg_match('/left|right/i', $css_arr[2][$key])) {
                 if ($rules = FSS_CSSParse::rtlCSSRule($css_arr[2][$key])) {
                     $css_flipped .= trim(str_replace('$$$', '{', $css_arr[1][$key]));
                     $css_flipped .= " {\n\t" . trim($rules) . "\n";
                     $css_flipped .= str_replace('$$$', "\n}", $css_arr[3][$key]) . "\n\n";
                 }
             }
         }
     }
     return $css_flipped;
 }