ПРИМЕЧАНИЕ: Я не собираюсь использовать VI, это просто первое, что пришло мне в голову, что могло бы сделать то, что мне нужно. Не стесняйтесь предлагать любую другую программу.
У меня есть форма с почти 100 полями, которые я хотел бы автоматически заполнить с помощью PHP. Я знаю, как делать автозаполнение, но я бы не хотел вручную добавлять нужный текст в 100 полей.
Есть ли автоматический способ взять текст:
<input name = "riskRating" id = "riskRating" type = "text" />
и измените его на:
<input name = "riskRating" id = "riskRating" type = "text" value = "<?php echo $data['riskRating']; ?>" />
Помните, что я хочу сделать это почти со 100 полями. Я стараюсь не заходить в каждое поле, вставлять PHP-код и вручную менять имя переменной.
Я надеюсь, что какой-нибудь гуру ВИ знает наверняка.






:%s:\(<input name = "\([^"]\+\)" id = "[^"]\+" type = "text" \)/>:value = "<?php echo $data ['']; ?>" />:gci
Это одна строка. HTH.
Уж тогда проблема точно не уточнялась. Обновление ответа.
«Помните, что я хочу сделать это почти со 100 полями. Я стараюсь избегать перехода к каждому полю, вставки кода PHP и изменения имени переменной вручную».
Проверьте мое обновление. Я не программист PHP. И вы написали ожидаемый результат и не упомянули, что он использует «переменную» - подвыражение, специфичное для регулярного выражения - из исходной строки.
Взяв несколько идей от Жолта Боркая и Марка Байка:
:%s:<input\(.* id = "\([^"]*\)".*\) />:<input value = "<?php echo $data['']; ?> />:g
Спасибо за ответы. Вы все избавили меня от большого раздражения.
У меня так получилось. Я не уверен, как избежать этого, чтобы работать в vim. Я отредактирую, если смогу разобраться
Это поисковая часть регулярного выражения:
<input (.*) id = "(.*?)" (.*) />
Это заменяемая часть:
<input id = "" value = "<?php echo $data['']; ?>" />
Это лучше, чем у меня. :% s: <input (. *) id = "([^"] *) "(. *) />: <input \ 1 id =" \ 2 "\ 3 value =" <? php echo $ data [ '\ 2']; ?> "/>: g
Спасибо за ответы. Вы все избавили меня от большого раздражения.
шаг 1: найдите цепочку type = "text":
/type = "text"
Убедитесь, что все нужные вам струны перехвачены. Шаг 2: Замените нужной строкой:
:%s//type = "text" value = "<?php echo $data riskrating]; ?>"/g
Шаг 3: Будьте счастливы!
Я не понимаю, как это работает не только для конкретного случая "riskRating".