Création d'une page PHP ou HTML depuis un fichier.bat
Bonjour à tous,
Ma question peut sembler bête, mais je tourne en rond depuis quelques jours.
Description de mon objectif :
J'ai sur mon site e-commerce une génération de fichiers PHP issus de mes articles. Je souhaite garder ces articles qui ne sont plus disponibles en ligne jusqu'à mon prochain réapprovisionnement du fournisseur. Pour ce faire, j'utilise un fichier Excel dans lequel j'ai le nom de ma page.
Exemple :
polo-fred-perry-M1200-fille.php
polo-ben-sehrman-logo-male.php
...
je change le header de ces pages comme suit
Code:
1 2 3 4
| <?php
header('Status: 301 Moved Permanently',false, 301);
header('Location: http://www.idols.fr);
?> |
Afin d'obtenir ce résultat j'ai fait des concaténations de cellules dans mon fichier Excel et ensuite je copie le résultat dans un fichier .bat qui me génère le fichier PHP ou html
http://static.inky.ws/image/2390/image.jpg
Ensuite le colle le résultat de la colonne G dans un fichier texte que je renomme en .bat
http://static.inky.ws/image/2391/image.jpg
Le code utilisé est sur une seule ligne, pour plus de visibilité je suis revenu à la ligne dans l'éditeur de texte
Fichier test2.bat:
Code:
1 2 3 4 5
| @echo off
echo ^<?php^ >chaussure-fredperry-bleu.php
echo ^header('Status: 301 Moved Permanently',false, 301);^ >>chaussure-fredperry-bleu.php
echo ^header('Location: http://www.idols.fr');^ >>chaussure-fredperry-bleu.php
echo ^?^> >>chaussure-fredperry-bleu.php |
Résultat du fichier test2.bat :
et j'obtiens un fichier PHP contenant le code
Code:
1 2 3 4
| <?php
header('Status: 301 Moved Permanently',false, 301);
header('Location: http://www.idols.fr);
?> |
Dorénavant, je souhaiterai modifier mes fichiers créés PHP avec ceci en une seule ligne :
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="FR"><style type="text/css" media="all">@import "NeD2.css";</style><head><title>titre de la page a modifier</title><meta name="description" content="explication de la page à modifier" /><meta name="keywords" content="mots clé à moficier"/><meta http-equiv="content-language" content="fr" /></head><body><?php include("iframe2.php");?></body></html>
voici le code en plusieurs lignes pour plus de visibilité :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="FR">
<style type="text/css" media="all">@import "NeD2.css";</style>
<head>
<title>titre de la page a modifier</title>
<meta name="description" content="explication de la page à modifier" />
<meta name="keywords" content="mots clé à moficier"/>
<meta http-equiv="content-language" content="fr" />
</head>
<body>
<?php include("iframe2.php");?>
</body>
</html> |
Comment puis je faire dans mon nouveau fichier bat un "echo" de ma ligne entière sans qu'il y est des erreurs ?
Code:
1 2
| @echo off
echo ^<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="FR"><style type="text/css" media="all">@import "NeD2.css";</style><head><title>titre de la page a modifier</title><meta name="description" content="explication de la page à modifier" /><meta name="keywords" content="mots clé à moficier"/><meta http-equiv="content-language" content="fr" /></head><body><?php include("iframe2.php");?></body></html>^ >test2.html |
Existe-t-il un moyen plus simple de générer mes fichiers PHP ?
Vous l'aurez compris, je ne suis pas programmeur, quand j'ai montré ma méthode à un client au magasin qui est informaticien , il m'a dit que j'étais complètement cinglé de faire cela avec Excel de cette manière, cependant il n'a pas été capable de m'aider donc ...
j'ai trouvé sur ce site une fonction qui permet de générer un fichier excel
http://boisgontierjacques.free.fr/pa...s.htm#Ecriture
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Sub ExportTxtChamp()
repertoire = ThisWorkbook.Path
Open repertoire & "\x.txt" For Output As #1
Set champ = [C1].CurrentRegion
For lig = 1 To champ.Rows.Count
ligne = ""
For col = 1 To champ.Columns.Count
ligne = ligne & champ.Cells(lig, col) & ";"
Next col
Print #1, Left(ligne, Len(ligne) - 1)
Next lig
Close #1
End Sub |
Cela se rapproche de mon objectif : il faudrait que j'imprime chaque cellule dans un fichier texte différent mais la tâche m'est difficile avec le code, je n'y comprends pas grand chose.
Je suis preneur de toutes suggestions, conseils ..
Voilà, merci pour votre aide. :P
je me suis mal expliqué lors de mon post initial
Bonjour Eric,
Merci pour ta réponse, cependant je n'ai peu être pas exprimé correctement mon problème. Je souhaite générer des fichiers PHP à partir d'un fichier .BAT.
J'ai expliqué précédemment la façon dont je procédais pour générer des fichiers php à partir d'un fichier excel et .bat (imprimés écrans), les noms de fichiers créés vont être différents (et le contenu le sera également). Dans le code que tu me donnes en exemple, je ne peux créer qu'un seul fichier php à la fois or dans celui que j'utilise avec mon fichier .bat je peux en créer par lot.
Je pense que ma question est spécifique au script batch de MS, à savoir comment utiliser la fonction echo pour afficher une ligne de code html sans obtenir d'erreur.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="FR"><style type="text/css" media="all">@import "NeD2.css";</style><head><title>titre de la page a modifier</title><meta name="description" content="explication de la page à modifier" /><meta name="keywords" content="mots clé à moficier"/><meta http-equiv="content-language" content="fr" /></head><body><?php include("iframe2.php");?></body></html>
Est ce que je peux créer des noms de fichier php différents
Bonjour Eric,
J'arrive bien à générer le fichier php en question, par contre je me demande s'il est possible de générer des noms de fichiers unique de cette manière :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Sub creer_fich_php_02()
Dim i As Integer
Dim var As String
Dim nomfichierphp As String
For i = 2 To 18
Open "D:\testIDOLS.FR\nomfichierphp" For Output As #1
var = Range("B" & i)
nomfichierphp = Range("D" & i)
Print #1, var
Print #1, nomfichierphp
Next i
Close #1
End Sub |
car j'ai une fenêtre débogage qui apparaît
oui c'est trés compliqué à faire
Merci
J'ai trouvé cette formule pour générer les noms de fichiers mais je n'arrive pas à la fusionner avec celle que tu m'a transmise pour écrire dans ces fichiers
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Sub creer_fich_php_02()
Dim i As Integer
Dim var As String
Dim MonFichierphp As String
For i = 2 To 18
MonFichierphp = "C:\" & Range("D" & i) & ".php"
ligne1 = Range("D" & i)
f = FreeFile()
Open MonFichierphp For Append As #f
Print #f, ligne1
Open MonFichierphp For Output As #1
var = Range("B" & i)
Print #1, var
Next i
Close #f
End Sub |
1 pièce(s) jointe(s)
J'ai réussi à faire la création d'un document mais un problème persiste
Bonjour Eric,
J'ai pu faire un test dans mon fichier excel joint en PJ.
Il s'agit de l'onglet "sortie fichier PHP" dans lequel j'ai réussi à mettre ta fonction, cependant lors de la boucle, il y a une fenêtre de débogage.
Je suis en train de chercher comment cela arrive.
:P
Message de la fenetre de debug
Citation:
Envoyé par
bbil
Il faut lire ce le texte sur ta fenêtre de débogage le copier ici et nous dire sur qu'elle ligne de code cette fenêtre apparait !
Bonjour,
la fenêtre m'indique "erreur d'exécution 55 , fichier déja ouvert".
Or le fichier en question n'existe pas sur mon lecteur D car la fonction excell est en train de le créer.
1 pièce(s) jointe(s)
RESOLU - J'ai résolu le problème grâce à vous deux
Bonsoir BBIL et Eric,
voilà j'ai mis cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Sub creer_fich_php_03()
Dim a As Integer
Dim i As Integer
Dim var As String
For a = 2 To 4 'boucle uniquement sur la ligne 1 pour exemple
Open "d:\" & Range("A" & a) & ".php" For Output As #1
'les données sont sur la ligne 1 de B1 à N1 pour exemple
For i = 2 To 4
var = Cells(a, i)
Print #1, var
Next i
Close #1
Next a
End Sub |
Maintenant mon fichier excel me génère des pages html via ce bout de programme écrit dans sa totalité par Eric.
Je vais mettre mon fichier en partage au cas ou une personne aurait le même besoin que moi.
Un grand merci pour votre patience et un trés grand merci pour votre aide, je suis trop content du résultat
:ccool::mrgreen: