Html vers php

Description

J'ai fait ce script pour des besoins perso.
Il transforme proprement et avec diverses options du html en php.

Le but avoué est de gagner du temps lors de développement de script php et surtout de ne plus faire de coquilles. J'ai écrit ce script après avoir passé des heures à chercher un bug dû à un guillemet mal placé.

Perso, je fais ainsi mes mises en pages avec un éditeur html wysiwyg et je transcris en 3s dans mon EDI php.

En espérant que cela serve, n'hésitez pas à m'en faire des remarques & co ;)

La page exécutable:
http://othersystem.loco-web.com/libre/html2php.php
l'url va bientôt changer et sera:
http://www.othersystem.net/libre/html2php.php

Capture d'écran:
http://othersystem.loco-web.com/libre/html2php.jpg
l'url va bientôt changer et sera:
http://www.othersystem.net/libre/html2php.jpg

le source est dispo en rar:
http://othersystem.loco-web.com/libre/html2php.zip
l'url va bientôt changer et sera:
http://www.othersystem.net/libre/html2php.zip

Source / Exemple :


<HTML><?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<head>
<title>HTML=>PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<BODY><div align="center"><font face="Times New Roman, Times, serif" font size="5"><strong>Mise en forme HTML vers PHP</strong></font></div>
<div align="center"><font size="2">
<br>Si le nom de variable est omis la forme echo simple sera utilisée.
</font></div>
<SCRIPT>
function paste (){document.getElementById("Tinp").createTextRange().execCommand("Paste");}
function copy(){document.getElementById("Tout").createTextRange().execCommand("Copy");}
function varvide (){
	var d=document.forms;
	if (d.vrb.value=='') {
		d.finecho.checked='';
		d.finecho.disabled='true';
		d.demaj.checked='';
		d.demaj.disabled='true';
	}else{
		d.finecho.disabled='';
		d.demaj.disabled='';
	}
}
</SCRIPT>
<?PHP
	$ppg=$_POST;
	unset($_POST,$_GET);

	if (!$ppg['flag']){
		$ppg['vrb']='$e';
		$ppg['rl']='\n';
		$ppg['finecho']='on';
		$ppg['dbl']=true;
		$ppg['fcr']=true;
	}

	$cr=chr(13).chr(10);

	if (get_magic_quotes_gpc()&&($ppg['flag'])) {
		$ppg['t1']=stripslashes($ppg['t1']);
		$ppg['vrb']=stripslashes($ppg['vrb']);
		$ppg['rl']=stripslashes($ppg['rl']);
	}

	if ($ppg['dbl']){
		$g='"';
		$dbl_m='checked';
		$rl=$ppg['rl'].'";';
	}else{
		$g="'";
		$rl='\'."'.$ppg['rl'].'";';
	}
	
	if (!$ppg['vrb']){
		$vr='echo '.$g;$vr1=$vr;
		$demaj_m='disabled';
		$finecho_m='disabled';
	}else{
		$vr=$ppg['vrb'].'.='.$g;
		if (!$ppg['demaj']){
			$vr1=$ppg['vrb'].'='.$g;
		}else{
			$vr1=$vr;
			$demaj_m='checked';
		}
	}
	if ($g=='"'){
		$txt=$vr1.addslashes($ppg['t1']);
	}else{
		$txt=$vr1.str_replace('\'','\\\'',$ppg['t1']);
	}
	
	$txt=str_replace( $cr,$rl.$cr.$vr,$txt).$rl;

	if ($ppg['finecho']){
		$txt.=$cr.'echo '.$ppg['vrb'].';';
		$finecho_m='checked';
	}
	
	if ($ppg['fcr']){
		$txt.=$cr;
		$fcr_m='checked';
	}
	
	$vrb_m=$ppg['vrb'];
	$rl_m=$ppg['rl'];
	
	$e="<form name=\"forms\" action=\"{$_SERVER['PHP_SELF']}\" method=\"POST\">\n";
	$e.="  <input name=\"flag\" type=\"hidden\" value=\"true\" />\n";
	$e.="  <table border=\"1\" align=\"center\">\n";
	$e.="    <tr>\n";
	$e.="      <td width=50% >\n";
	$e.="        <input name=\"vrb\" type=\"text\" id=\"vrb\" value=\"$vrb_m\" tabindex=1 size=\"10\" onchange=javascript:varvide(); />\n";
	$e.="        Nom de variable</td>\n";
	$e.="      <td>\n";
	$e.="        <input name=\"demaj\" type=\"checkbox\" id=\"demaj\" $demaj_m tabindex=4 />\n";
	$e.="        Démarrer en ajout\n";
	$e.="      </td>\n";
	$e.="    </tr>\n";
	$e.="    <tr>\n";
	$e.="      <td>\n";
	$e.="        <input name=\"rl\" type=\"text\" value=\"$rl_m\" tabindex=2 size=\"10\" />\n";
	$e.="        Retour à la ligne</td>\n";
	$e.="      <td>\n";
	$e.="        <input name=\"finecho\" type=\"checkbox\" id=\"finecho\" $finecho_m tabindex=5 />\n";
	$e.="        Mettre echo à la fin\n";
	$e.="      </td>\n";
	$e.="    </tr>\n";
	$e.="    <tr>\n";
	$e.="      <td>\n";
	$e.="          <input name=\"dbl\" type=\"checkbox\" id=\"dbl\" $dbl_m tabindex=3 />\n";
	$e.="          Guillemets doubles</td>\n";
	$e.="      <td>\n";
	$e.="        <input name=\"fcr\" type=\"checkbox\" id=\"fcr\" $fcr_m tabindex=6 />\n";
	$e.="        Finir avec un CR\n";
	$e.="      </td>\n";
	$e.="    </tr>\n";
	$e.="  </table>\n";
	$e.="  <tr>\n";
	$e.="    <br>\n";
	$e.="  </tr>\n";
	$e.="  <table border=1 align=\"center\" >\n";
	$e.="    <tr>\n";
	$e.="      <td colspan=\"4\">\n";
	$e.="        <textarea id=\"Tinp\" name=\"t1\" wrap=\"off\" cols=\"48\" rows=\"10\">\n{$ppg['t1']}</textarea>\n";
	$e.="      </td>\n";
	$e.="    </tr>\n";
	$e.="  </table>\n";
	$e.="  <table border=1 align=\"center\" >\n";
	$e.="    <tr>\n";
	$e.="      <td align=\"right\">\n";
	$e.="        <input type=\"button\" value=\"Coller\" onClick=javascript:paste(); >\n";
	$e.="      </td>\n";
	$e.="      <td align=\"center\">\n";
	$e.="        <input name=\"envoi\" type=\"submit\" value=\"Mettre en php\">\n";
	$e.="      </td>\n";
	$e.="      <td align=\"left\">\n";
	$e.="        <input type=\"button\" value=\"Copier\" onClick=javascript:copy(); >\n";
	$e.="      </td>\n";
	$e.="    </tr>\n";
	$e.="  </table>\n";
	$e.="  <table border=1 align=\"center\" >\n";
	$e.="    <tr>\n";
	$e.="      <td>\n";
	$e.="        <textarea id=\"Tout\" name=\"t2\" wrap=\"off\" cols=\"48\" rows=\"10\">\n$txt</textarea>\n";
	$e.="      </tr>\n";
	$e.="  </table>\n";
	$e.="</form>\n";
	echo $e;
?></BODY></HTML>

Conclusion :


Si aucune variable n'est indiquée dans le champ prévu, la sortie sera sous forme ' echo "blabla html" '

Les options sont configurés par défaut comme il me convenait, mais leurs mofifications restent valident tout le temps de la session.

L'utilisation la plus rapide est de selectionner copier la portion html dans le presse papier, de cliquer sur 'Coller, Mettre en PHP, Copier' et de coller dans l'editeur PHP.

Mise à jour du 07/10/2003, la forme rendue avec les guillemets simples étaient invalide.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.