Html vers php

Soyez le premier à donner votre avis sur cette source.

Vue 8 529 fois - Téléchargée 586 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

Messages postés
5
Date d'inscription
dimanche 13 janvier 2008
Statut
Membre
Dernière intervention
27 septembre 2010

et des "isset" pour éviter les message d'erreurs ^^
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
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.!
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 :-)
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
Afficher les 6 commentaires

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.