$j) { $k--; $expr=substr($expr,$j+1,strlen($expr)); } if ($i==$j) {$flag=false;die("i=j");} } $expression=substr($expression,0,strlen($expression)-strlen($expr)+$i); $expression=str_replace("(",$bo,$expression); $expression=str_replace(")",$bf,$expression); return $expression; } function chercherbo($bo,$bf,$expression) { $expression=str_replace($bo,"(",$expression); $expression=str_replace($bf,")",$expression); $expr=$expression; $k=0; $flag=true; while ($flag==true){ $i=strrpos($expr,"("); $j=strrpos($expr,")"); if ($i===false) $i=-1; if ($j===false) $j=-1; if ($i>$j) { $k++; if ($k==1) $flag=false; else $expr=substr($expr,0,$i); } if ($i<$j) { $k--; $expr=substr($expr,0,$j); } if ($i==$j) {$flag=false;die("probleme de format du texte");} } $expression=substr($expression,$i+1,strlen($expression)); $expression=str_replace("(",$bo,$expression); $expression=str_replace(")",$bf,$expression); return $expression; } function indiceexposant($expr) { $l=strlen($expr); $exprr=""; $i=$l-1; while ($i>=0){ $a=substr($expr,$i,1); $i--; $ok=false; $j=$i; if ((ereg("\^",$a)) || (ereg("\_",$a))) { $b=substr($expr,$i,1); $i--; if ((ereg(">",$b)) || ($b=="}")){ if (substr($expr,$i,1)=="/"){ $numerateur=strrchr(substr($expr,0,$i+2),"<"); $i=$i-strlen($numerateur)+1; } else { if ($b==">") $b=strrchr(substr($expr,0,$i+2),"<"); $i=$i-strlen($b)+1; $balisefin=$b; if ($b!="}") $balisedebut=str_replace("/","",$b); else $balisedebut="{"; $c=chercherbo($balisedebut,$balisefin,substr($expr,0,$i+1)); $i=$i-strlen($c.$balisedebut); $c=indiceexposant($c); if ($balisedebut!="{") $balisedebutN=$balisedebut; else $balisedebutN=""; if ($balisefin!="}") $balisefinN=$balisefin; else $balisefinN=""; $numerateur=$c; } $ok=true; } $b=substr($exprr,0,1); if (ereg("<",$b)) { $j=strpos($exprr,">"); $b=substr($exprr,0,$j+1); $balisedebut=$b; $balisefin=substr($b,0,1)."/".substr($b,1,strlen($b)-1); $c=indiceexposant(chercherbf($balisedebut,$balisefin,substr($exprr,strlen($balisedebut),strlen($exprr)))); $exprr=substr($exprr,strlen($balisedebut.$c.$balisefin),strlen($exprr)); if (($balisedebut=="") && (ereg("\_",$a))){ $baliseO=""; $baliseF=""; $balisedebut=""; $balisefin=""; } else { if (ereg("\_",$a)) { $baliseO=""; $baliseF=""; } else { $baliseO=""; $baliseF=""; } } $denominateur=$balisedebut.$c.$balisefin; } else $ok=false; if ($ok) { $exprr=$baliseO.$balisedebutN.$numerateur.$balisefinN.$denominateur.$baliseF.$exprr; $a=""; } else $i=$j; } $exprr=$a.$exprr; } return $exprr; } function editestring($expr) { while(ereg("\(([^()]*)\)",$expr)){ $expr=preg_replace("/\(([^()]*)\)/","$1",$expr); } $l=strlen($expr); //echo "expr=$expr\n "; $exprr=""; $i=$l-1; while ($i>=0){ $a=substr($expr,$i,1); //echo " a=$a "; $i--; if ($a==";") { $texte=false; $b=strrchr(substr($expr,0,$i+1),"&"); if (ereg("(&#)(.*)([^a-zA-Z]+)",$b)) { $texte=true;} if ($b=="") {$texte=true;} if ($texte==true){ $b=strrchr(substr($expr,0,$i+2),"<"); if (!(ereg(""; $exprr=$a.$exprr; $a=""; } else { $b=strrchr(substr($expr,0,$i+2),"<"); $exprr=$b.$exprr; $i=$i-strlen($b)+1; $a=""; } } if (ereg("(\+|\-|\(|\)|=|\[|\]|\*|,|\.|:|%)",$a)) { $b=strrchr(substr($expr,0,$i+2),"<"); if (!(ereg(""; $exprr=$a.$exprr; $a=""; } if ($a=="|") { $b=strrchr(substr($expr,0,$i+2),"<"); if (!(ereg(""; $exprr="&#mid;".$exprr; $a=""; } /* if (ereg("\}",$a)) { $b=chercherbo("{","}",substr($expr,0,$i+1)); $i=$i-strlen($b)-1; if (($test=="^") || ($test=="_")) $exprr="".$b."".$exprr; else $exprr="{".$b."}".$exprr; $a=""; }*/ if (ereg(">",$a)) { $b=substr($expr,$i,1); if ($b!="\\") { $b=strrchr(substr($expr,0,$i+2),"<"); $exprr=$b.$exprr; $i=$i-strlen($b)+1; $a=""; } } if (ereg("[0-9]",$a)) { while(ereg("[0-9]|\.|,",substr($expr,$i,1)) && ($i>=0)){ $a=substr($expr,$i,1).$a; $i--; } $b=strrchr(substr($expr,0,$i+2),"<"); if (!(ereg(""; $exprr=$a.$exprr; $a=""; } if (ereg("[a-zA-Z]",$a)){ $texte=false; $b=strrchr(substr($expr,0,$i+2),"\\"); if (ereg("(\\\)(.*)([^a-zA-Z]+)",$b)) { $texte=true;} if ($b=="") {$texte=true;} if ($texte==true){ $b=strrchr(substr($expr,0,$i+2),"<"); // echo "//b=$b//"; if ((!(ereg(""; $exprr=$a.$exprr; $a=""; } else { $commande=substr($b,1,strlen($b)); $c=strrchr(substr($expr,0,$i+2),"<"); if ((!(ereg("".$exprr; } else $exprr="\\".$commande."".$exprr; } else { $exprr=str_replace("\\".$commande,"&#".$commande.";",$c).$exprr; // echo "c=$c\n"; //echo "exprr=$exprr\n"; $i=$i-strlen($c)+1; //$a=substr($expr,$i,1); //echo "a=$a\n"; //$a=""; } $a=""; } } if ($a==" "){ $b=substr($expr,$i,1); if ($b=="\\") { $exprr="".$exprr; $i--; } else { $b=strrchr(substr($expr,0,$i+2),"<"); if (ereg("&#lt;",$message); $message=str_replace("&#gt;","&#gt;",$message); $message=str_replace("","",$message); $message=str_replace("","",$message); $message=preg_replace("/(\\\){1}(begin)\{(array)\}/","",$message); $message=preg_replace("/(\\\){1}(end)\{(array)\}/","\n",$message); $message=preg_replace("/((\\\){2})(
)?/","\n",$message); $message=preg_replace("/(&)([^#])/","$2",$message); $message=str_replace("\n\n","",$message); while($flag<2) { $message=preg_replace("/(\\\){1}(displaystyle)\{([^}{]*)\}/","$3",$message); $message=preg_replace("/(\\\){1}(to)/","\\RightArrow",$message); $temp=preg_replace("/(\\\){1}(vec)\{([^}{]*)\}/","$3 \\RightArrow",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(bar|overbar)\{([^}{]*)\}/","$3 \\OverBar",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(overbrace)\{([^}{]*)\}/","$3 \\OverBrace",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(underbrace)\{([^}{]*)\}/","$3 \\UnderBrace",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(over)\{([^}{]*)\}\{([^}{]*)\}/","$3 $4",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(under)\{([^}{]*)\}\{([^}{]*)\}/","$3 $4",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(binomial)\{([^}{]*)\}\{([^}{]*)\}/","$3$4",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(text)\{([^}{]*)\}/","$3",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(sqrt)\{([^}{]*)\}/","$3",$message); if ($message!=$temp) {$message=editermaths($temp);} $temp=preg_replace("/(\\\){1}(frac)\{([^}{]*)\}\{([^}{]*)\}/","$3 $4",$message); if ($message!=$temp) {$message=editermaths($temp);} $message=preg_replace("/(\^\{[^}{]*\})(\_\{[^}{]*\})/","$2$1",$message); $message=preg_replace("/(\^|\_)\{([^}{]*)\}/","$1$2",$message); $message=preg_replace("/(\\\){1}(mathfrak)\{([^}{]{1})\}/","\\\\$3fr ",$message); $message=preg_replace("/(\\\){1}(mathbb)\{([^}{]{1})\}/","\\\\$3opf ",$message); $message=preg_replace("/(\\\){1}(mathcal)\{([^}{]{1})\}/","\\\\$3scr ",$message); $message=preg_replace("/(\^.{1})(\_.{1})/","$2$1",$message); $flag++; } $message=preg_replace("/(\{){1}([^{}]+)(\}){1}/e","'{'.editermaths(\"$2\").'}'",$message); $message=editestring($message); $message=indiceexposant($message); // $message=preg_replace("/(&#sum;|&#prod;)<\/mo>([^{}]*)<\/msubsup>/","$1$2",$message); $message=preg_replace("/&#(sin|arcsin|cos|arccos|tan|arctan|ln|log|lim|min|max|inf|sup);<\/mo>/","$1",$message); // $message=preg_replace("/(lim|min|max|inf|sup)<\/mi>([^{}]*)<\/msub>/e","'$1'.chercherbf('','',\"$2\").''.substr(\"$2\",strlen(chercherbf('','',\"$2\"))+7,strlen(\"$2\")).''",$message); //echo "...\n\r\n"; $message=str_replace("
","",$message); return $message; } function editer($message) { $message=stripslashes($message); $message=str_replace("<","&#lt;",$message); $message=str_replace(">","&#gt;",$message); $message=ereg_replace("(\n|\r){2}","\\1",$message); $message=preg_replace("/(\\\){1}(\{)/","",$message); $message=preg_replace("/(\\\){1}(\})/","",$message); $message=preg_replace("/(\')/","",$message); $message = nl2br($message); $flag=0; while($flag<200) { $fflag=0; while((ereg("$",$message)) && ($fflag<5)) { $message=preg_replace("/(\\$){2}([^$]+)(\\$){2}/e","'
'.editermaths(\"$2\").'
'",$message); $message=preg_replace("/(\\$){1}([^$]+)(\\$){1}/e","''.editermaths(\"$2\").''",$message); $fflag++; } $message=preg_replace("/(\\\){1}(begin)\{(ltabular)\}(\[([0-9]*)?\])?(
)?([^}{]*)(\\\){1}(end)\{(ltabular)\}/","\n\n\n
\n$7\n
",$message); $message=preg_replace("/(\\\){1}(begin)\{(tabular)\}(\[([0-9]*)?\])?(
)?([^}{]*)(\\\){1}(end)\{(tabular)\}/","\n
$7
",$message); $message=preg_replace("/((\\\){2})(
)?/","\n",$message); $message=preg_replace("/(&)([^#])/","$2",$message); $message=str_replace("\n\n","",$message); $message=preg_replace("/(\\\){1}(begin|debut)\{(théorème|définition|exemple|exemples|proposition|propriété|propriétés|exercice|exercices|démonstration|preuve)( ?[0-9]*)\}([^}{]*)(\\\){1}(end|fin)\{(théorème|définition|exemple|exemples|proposition|propriété|propriétés|exercice|exercices|démonstration|preuve)\}/e","''.ucwords(\"$3\").\"$4.\".''.\"$5\".''",$message); $message=preg_replace("/(\\\){1}(color)\[([^}{]*)\]\{([^}{]*)\}/","$4",$message); $message=preg_replace("/(\\\){1}(left)\{([^}{]*)\}/","
$3
",$message); $message=preg_replace("/(\\\){1}(right)\{([^}{]*)\}/","
$3
",$message); $message=preg_replace("/(\\\){1}(center)\{([^}{]*)\}/","
$3
",$message); $message=preg_replace("/(\\\){1}(bf)\{([^}{]*)\}/","$3",$message); $message=preg_replace("/(\\\){1}(it)\{([^}{]*)\}/","$3",$message); $message=preg_replace("/(\\\){1}(ul)\{([^}{]*)\}/","$3",$message); $message=preg_replace("/(\\\){1}(chapter)\{([^}{]*)\}/","

$3

",$message); $message=preg_replace("/(\\\){1}(section)\{([^}{]*)\}/","

$3

",$message); $message=preg_replace("/(\\\){1}(subsection)\{([^}{]*)\}/","

$3

",$message); $message=preg_replace("/(\\\){1}(subsubsection)\{([^}{]*)\}/","

$3

",$message); $message=preg_replace("/(\\\){1}(end)\{(itemize)\}/","",$message); $message=preg_replace("/(\\\){1}(begin)\{(itemize)\}/","
    ",$message); $message=preg_replace("/(\\\){1}(end)\{(enumerate)\}/","",$message); $message=preg_replace("/(\\\){1}(begin)\{(enumerate|enumerer)\}\[([1|a|A|i|I]?)\]/","
      ",$message); $message=str_replace("\\item","
    1. ",$message); $flag++; } $message=ereg_replace("(

        \n)","

          \n",$message); $message=str_replace("

            \n","

              \n",$message); $message=str_replace("\\quad"," ",$message); $message=str_replace("\\qquad","  ",$message); $message=str_replace("&#","&",$message); $message=str_replace("","(",$message); $message=str_replace("",")",$message); $message=str_replace("","{",$message); $message=str_replace("","}",$message); $message=str_replace("","'",$message); $message=preg_replace("/([éèëàçêûïâîôùÀÈÎÔÛÏÂ]{1})/e","htmlentities(\"$1\")",$message); return $message; } ?>