Html vers php

Soyez le premier à donner votre avis sur cette source.

Vue 8 430 fois - Téléchargée 578 fois

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

Ajouter un commentaire

Commentaires

eax
Messages postés
728
Date d'inscription
jeudi 20 juin 2002
Statut
Membre
Dernière intervention
7 novembre 2007
-
ah c vraiment sympa ça, il fallait y penser!
eax
Messages postés
728
Date d'inscription
jeudi 20 juin 2002
Statut
Membre
Dernière intervention
7 novembre 2007
-
unn truc qui serait mieux c de générer des (tabs) pour l'indentation du texte
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
bonne idée, sinon autre chose de bien pratique (j'ai utilisé les 2 méthodes pr différents sites, et c'est la seconde qui me plait le plus)

première:

<?
//script
if(CONDITION)
{
?>
code html normal, avec éventuellement des tt petits bouts de php pr remplacer les valeurs, ça peut même venir ds une boucle :-)
<?
}
?>


seconde méthode, très bien celle là

j'ai fait ça parce que chaque page devait afficher des fiches assez complexes, alors pr pvr les retoucher à volonté, je les a ifaites en HTML pur, éditable donc sous dreamweaver, frontpage, totu ce que tu veux avec bcp de facilité, et dans les chmpas à remplir par des valeurs du php, j'ai mis %nomdelavaleur%
ensuite, j'ai un script php qui load le fichier dans une chaîne (file(fichier) et après implode())
puis des str_replace pr remplacer les %valeur% par la valeur exacte, et puis un echo sur la chaine. et je vous assure, c'est la meilleure manière pr les gros tableaux.

évidemment, pt qq ch de coursn c mieux ceci :-)
cs_Francois76
Messages postés
6
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
18 septembre 2008
-
Merci très cool ton script.!
cs_abys
Messages postés
77
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
29 juillet 2010
-
maintenant tu peux convertir tout ton site en un seul click

http://www.vbfrance.com/code.aspx?ID=21987

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.