Puis-je utiliser RegEx et VI (ou quelque chose de similaire) pour remplir automatiquement un texte pour moi?


6

NOTE: Je ne suis pas sur utiliser VI, c'est juste la première chose qui vient à l'esprit qui pourrait être en mesure de faire ce dont j'ai besoin. N'hésitez pas à suggérer n'importe quel autre programme.

J'ai un formulaire avec près de 100 champs que je voudrais remplir automatiquement avec PHP. Je sais comment faire l'autofill, mais je voudrais éviter d'ajouter manuellement le texte nécessaire à 100 champs.

est-il un moyen automatisé je peux prendre le texte:

<input name="riskRating" id="riskRating" type="text" /> 

et changer à:

<input name="riskRating" id="riskRating" type="text" value="<?php echo $data['riskRating']; ?>" /> 

Rappelle-toi que je suis désireux de le faire à près de 100 champs. J'essaie d'éviter d'aller à chaque champ, en collant dans le code PHP et en changeant le nom de la variable manuellement. J'espère que certains gourous VI là-bas sait sur le dessus de sa tête.

5

Prendre quelques idées de Zsolt Botykai et Mark Biek:

:%s:<input\(.* id="\([^"]*\)".*\) />:<input \1 value="<?php echo $data['\2']; ?> />:g 
  0

Merci pour les réponses. Vous m'avez sauvé beaucoup d'ennui. 23 sept.. 082008-09-23 20:40:22


4

:%s:\(<input name="\([^"]\+\)" id="[^"]\+" type="text" \)/>:\1value="<?php echo $data ['\2']; ?>" />:gci

C'est une ligne. HTH.

  0

Je ne vois pas comment cela fonctionne pour plus que le cas spécifique de "riskRating" 23 sept.. 082008-09-23 19:55:36

  0

Oh, alors le problème n'a pas été spécifié exactement. Mise à jour de la réponse 23 sept.. 082008-09-23 19:57:24

  0

"Rappelez-vous que je veux faire cela à près de 100 champs, j'essaie d'éviter d'aller dans chaque champ, de coller le code PHP et de changer le nom de la variable manuellement." 23 sept.. 082008-09-23 19:58:50

  0

Consultez ma mise à jour. Je ne suis pas un programmeur PHP. Et vous avez écrit la sortie attendue, et n'avez pas mentionné qu'il utilise une "variable" - sous-expression pour être spécifique à une regexp - à partir de la chaîne d'origine. 23 sept.. 082008-09-23 20:08:09


2

Je l'ai fait comme ça. Je ne sais pas comment y échapper pour travailler à vim. Je vais modifier si je peux sortir

Ceci est la partie de la recherche de la regex:

<input (.*) id="(.*?)" (.*) /> 

Ceci est la partie remplacer:

<input \1 id="\2" \3 value="<?php echo $data['\2']; ?>" /> 
  0

C'est mieux que le mien. :% s: <entrée \ (. * \) id = "\ ([^"] * \) "\ (. * \) />: <entrée \ 1 id =" \ 2 "\ 3 valeur =" < ? php echo $ data ['\ 2']; ?> "/>: g 23 sept.. 082008-09-23 20:06:22

  0

Merci pour les réponses, vous m'avez sauvé beaucoup d'ennui. 23 sept.. 082008-09-23 20:39:50


-1

étape 1: recherche du type de chaine = "text":

/type="text" 

Vérifiez que toutes les chaînes souhaitées sont interceptées. étape 2: Substitut avec la chaîne désirée:

:%s//type="text" value="<?php echo $data riskrating]; ?>"/g 

étape 3: Soyez heureux!