<?php include 'php/converter.class.php'; $str = "Pxl-Test(TOTO,10)\n"; echo 'Avant: ' . $str . '<br />'; preg_match_all("#Pxl-Test\\([^,]+\\,[^,:\\)\\s→]+#i", $str, $matches); /*echo $matches[0][0]; echo '<pre>'; print_r($matches); echo '</pre>'; */ echo '<br />What we must convert: <br /><ul>'; for ($i = 0; $i < count($matches[0]); $i++) { $TestString = new Converter($matches[0][$i] . "\n"); //echo '<li><b>'.$matches[0][$i].'</b> -->Taille = '.strlen($matches[0][$i]).' --> '.$TestString->ColorToMono().'</li><br />'; //echo 'Portion du code à modifier: '.substr($str,stripos($str, $matches[0][$i]),1+strlen($matches[0][$i])); $str = str_replace($matches[0][$i], $TestString->ColorToMono(), $str); //echo '<br />FINAL='.preg_replace("#Pxl-Test\([^,]+\,[^,:\)\s→]+#i", $TestString->ColorToMono(),$str,1); } echo '' . $str; ?>
public function conv_coord($code, $mode, $typeOfWindows) { $ratio_x_px = "2.81"; $ratio_y_px = "2.66"; $ratio_x_txt = "2.8"; $ratio_y_txt = "2.63"; if ($mode == "CTM") { //Color to Mono $sign = "/"; } elseif ($mode == "MTC") { //Mono to color $sign = "*"; } include 'php/regex.php'; //saving preg match preg_match($linesimple2, $code, $linenocolor); preg_match($ptsimple2, $code, $ptnocolor); preg_match($ptsimpleno, $code, $ptoffnocolor); preg_match($horiznocolor, $code, $horiznocolortab); preg_match($vertinocolor, $code, $vertinocolortab); preg_match($ptchangenocolor, $code, $ptchangenocolortab); preg_match($pxonnocolor, $code, $pxonnocolortab); preg_match($pxoffnocolor, $code, $pxoffnocolortab); preg_match($pxlchangenocolor, $code, $pxlchangenocolortab); preg_match($textnocolor, $code, $textnocolortab); preg_match($cerclenocolor, $code, $cerclenocolortab); preg_match("#(Pxl-Test)\\(([^,]+)\\,([^,]+)#i", $code, $pxtesttab); if (count($linenocolor) > 0 and $typeOfWindows == "delta") { //there is a line here $temp = ""; $global = $linenocolor[1] . '('; for ($i = 2; $i < count($linenocolor); $i++) { if ($i == 2 or $i == 4) { $temp = '(' . $linenocolor[$i] . ')' . $sign . $ratio_x_px; $global = $global . $temp . ','; } if ($i == 3) { $temp = '(' . $linenocolor[$i] . ')' . $sign . $ratio_y_px; $global = $global . $temp . ','; } if ($i == 5 and $mode == "CTM") { $temp = '(1/' . $ratio_y_px . ')(' . $linenocolor[5]; $global = $global . $temp; } if ($i == 5 and $mode == "MTC") { $temp = '(' . $ratio_y_px . ')(' . $linenocolor[5]; $global = $global . $temp; } } if (count($linenocolor) == 7) { $global = $global . '),0' . "\n"; } return $global; } elseif (count($ptnocolor) > 0 and $typeOfWindows == "delta") { //there is a pton here $temp = ""; $global = $ptnocolor[1] . '('; for ($i = 3; $i <= count($ptnocolor); $i++) { if ($i == 3) { $global = $global . '(' . $ptnocolor[3] . ')' . $sign . $ratio_x_px; } if ($i == 4 and count($ptnocolor) <= 5) { $global = $global . ',(' . substr($ptnocolor[4], 0, strlen($ptnocolor[4]) - 1) . $sign . $ratio_y_px; } if ($i == 4 and count($ptnocolor) > 5) { $global = $global . ',(' . $ptnocolor[4] . ')' . $sign . $ratio_y_px; } if ($i == 6) { $global = $global . ',' . $ptnocolor[6]; } } return $global . "\n"; } elseif (count($ptoffnocolor) > 0 and $typeOfWindows == "delta") { $temp = ""; $global = $ptoffnocolor[1] . '('; for ($i = 3; $i <= count($ptoffnocolor); $i++) { if ($i == 3) { $global = $global . '(' . $ptoffnocolor[3] . ')' . $sign . $ratio_x_px; } if ($i == 4 and count($ptoffnocolor) <= 5) { $global = $global . ',(' . substr($ptoffnocolor[4], 0, strlen($ptoffnocolor[4]) - 1) . $sign . $ratio_y_px; } if ($i == 4 and count($ptoffnocolor) > 5) { $global = $global . ',(' . $ptoffnocolor[4] . ')' . $sign . $ratio_y_px; } if ($i == 6) { $global = $global . ',' . $ptoffnocolor[6]; } } return $global . "\n"; } elseif (count($horiznocolortab) > 0 and $typeOfWindows == "delta") { $global = $horiznocolortab[1] . ' (' . rtrim($horiznocolortab[2]) . $sign . $ratio_y_px . ')'; return $global . "\n"; } elseif (count($vertinocolortab) > 0 and $typeOfWindows == "delta") { $global = $vertinocolortab[1] . ' (' . rtrim($vertinocolortab[2]) . $sign . $ratio_x_px . ')'; return $global . "\n"; } elseif (count($ptchangenocolortab) > 0 and $typeOfWindows == "delta") { $global = $ptchangenocolortab[1] . '((' . $ptchangenocolortab[2] . ')' . $sign . $ratio_x_px . ',(' . rtrim($ptchangenocolortab[3]) . $sign . $ratio_y_px; return $global . "\n"; } elseif (count($pxonnocolortab) > 0) { $global = $pxonnocolortab[1] . '(int((' . $pxonnocolortab[3] . ')' . $sign . $ratio_x_px . '),int((' . rtrim($pxonnocolortab[4]) . ')' . $sign . $ratio_y_px . ''; return $global . "\n"; } elseif (count($pxoffnocolortab) > 0) { $global = $pxoffnocolortab[1] . '((' . $pxoffnocolortab[3] . ')' . $sign . $ratio_x_px . ',(' . rtrim($pxoffnocolortab[4]) . $sign . $ratio_y_px; return $global . "\n"; } elseif (count($pxlchangenocolortab) > 0) { $global = $pxlchangenocolortab[1] . '((' . $pxlchangenocolortab[2] . ')' . $sign . $ratio_x_px . ',(' . rtrim($pxlchangenocolortab[3]) . $sign . $ratio_y_px; return $global . "\n"; } elseif (count($textnocolortab) > 0) { //need fix if (strrpos($code, "Text(-1,") === FALSE and strrpos($code, "Texte(-1,") === FALSE) { //classic: no -1 argument $global = $textnocolortab[1] . '(int((' . $textnocolortab[count($textnocolortab) - 3] . ')' . $sign . $ratio_y_txt . '),int((' . $textnocolortab[count($textnocolortab) - 2] . ')' . $sign . $ratio_x_txt . '),' . $textnocolortab[count($textnocolortab) - 1]; } else { //maj size: -1 argument if ($textnocolortab[1] == "Text") { $pos = 8; } else { $pos = 9; } $newstring = $textnocolortab[1] . "(" . substr($code, $pos); preg_match($textnocolor, $newstring, $textwt1); $global = $textnocolortab[1] . '(-1,(int((' . $textwt1[3] . ')' . $sign . $ratio_y_txt . '),int((' . $textwt1[4] . ')' . $sign . $ratio_y_txt . '),' . $textwt1[5]; } //$global = $textnocolortab[1].'(int(('.$textnocolortab[count($textnocolortab)-3].')'.$sign.$ratio_y_txt.'),int(('.$textnocolortab[count($textnocolortab)-2].')'.$sign.$ratio_x_txt.'),'.$textnocolortab[count($textnocolortab)-1]; return $global . "\n"; } elseif (count($cerclenocolortab) > 0 and $typeOfWindows == "delta") { $global = $cerclenocolortab[1] . '((' . $cerclenocolortab[3] . ')' . $sign . $ratio_x_px . ',(' . $cerclenocolortab[4] . ')' . $sign . $ratio_y_px . ',(' . rtrim($cerclenocolortab[5]) . $sign . '2.8'; return $global; } elseif (count($pxtesttab) > 0) { if (preg_match($pxtest, $code)) { //que du pixel test if (preg_match("#[\\)]#i", $pxtesttab[3])) { $global = 'pxl-Test((' . $pxtesttab[2] . ')' . $sign . $ratio_y_txt . ',(' . rtrim($pxtesttab[3]) . $sign . $ratio_x_txt; } else { $global = 'pxl-Test((' . $pxtesttab[2] . ')' . $sign . $ratio_y_txt . ',(' . rtrim($pxtesttab[3]) . ')' . $sign . $ratio_x_txt; } return $global . "\n"; // } else { //start preg_match_all("#Pxl-Test\\([^,]+\\,[^,:\\)\\s→]+#i", $code, $matches); for ($i = 0; $i < count($matches[0]); $i++) { $TestString = new Converter($matches[0][$i] . "\n"); if ($mode == "CTM") { //Color to Mono $code = str_replace($matches[0][$i], rtrim($TestString->ColorToMono()), $code); } elseif ($mode == "MTC") { //Mono to color $code = str_replace($matches[0][$i], rtrim($TestString->MonoToColor()), $code); } } return $code; //end } } else { return $code; } }