Question

NOTE: I am not set on using VI, it is just the first thing that came to mind that might be able to do what I need. Feel free to suggest any other program.

I have a form with nearly 100 fields that I would like to auto-fill with PHP. I know how to do the autofill, but I would like to avoid manually adding the needed text to 100 fields.

Is there an automated way I can take the text:

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

and change it to:

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

Remember that I am wanting to do this to almost 100 fields. I am trying to avoid going to each field, pasting in the PHP code and changing the variable name manually.

I'm hoping some VI guru out there knows off the top of his/her head.

Was it helpful?

Solution

Taking some ideas from Zsolt Botykai and Mark Biek:

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

OTHER TIPS

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

That's one line. HTH.

I did it like this. I'm not sure how to escape it to work in vim though. I'll edit if I can figure it out

This is the search part of the regex:

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

This is the replace part:

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

step 1 : search the chaine type="text" :

/type="text"

Verify that all the strings you want are caught. step 2 : Subsitute with the wanted string :

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

step 3 : Be happy !

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top