已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 讨论/求助

标题: 正则替换求指点!

作者: @Ta

时间: 2012-05-11

点击: 12876

举个例子
$a="[i=a][i=a v=你好]";
//替换内容
怎么把
[i=a]替换成<input name='a'/>
把[i=a v=你好]替换成<input name="a" value="你好"/>

就是说最后输出的是<input name="a"><input name="a" value="你好"/>
替换一个我会,两个都替换我就不知道怎么弄了

[隐藏样式|查看源码]


『回复列表(26|显示机器人聊天)』

1. (*.)
(/@Ta/2012-05-11 20:40//)

2. @HYGSH 晕,什么阿
(/@Ta/2012-05-11 20:43//)

3. preg_replace("#[i=(.*)s+v=(.*)]#i","<input name="$1" value="$2"/>");试试可不可以 触屏打这些烦死
(/@Ta/2012-05-11 21:04//)

4. 恩,我试试.
(/@Ta/2012-05-11 21:15//)

5. "/\[i\=(a)\]/","<input name='\\1'>",$a另外那个在写一个就好了,弄成函数,用函数输出你的$a,它规搜索替换的!不知我说的对否!
(/@Ta/2012-05-11 21:19//)

6. @小易  恩,你的是安卓机吗?我姐的一千五,不过不支持点触笔,只能用手指点,要是打起字母来就想哭:(
我想你的应该可以,但是输出的会不会是这个?→
[i=a]<input name="a" value="你好"/>
你没有替换第一个啊
(/@Ta/2012-05-11 21:34//)

7. HTC G12不说了 打代码麻烦死
(/@Ta/2012-05-11 21:36//)

8. 电容屏就这样 也有电容笔的 只不过用不着
(/@Ta/2012-05-11 21:37//)

9. @arox 额,你的意思是?↓
function replace($t)
{
$a="[i=a][i=a v=你好]";
$t=preg_replace("/\[i=(.*?)\]/i","<input name='\\1'/>",$a);
$t=preg_replace("/\[i=(.*?) v=(.*?)\]/i","<input name='\\1' value='\\2'/>",$a);
return $t;
}
replace($t);
//输出这样写对吗?
(/@Ta/2012-05-11 21:42//)

10. $str=preg_replace('!\\[i=(\w+)\s+v=(.*)\\]!U','<input name="\\1" value="\\2"/>',$str);
$str=preg_replace('!\\[i=(\w+)\\]!U','<input name="\\1"/>',$str);
(/@Ta/2012-05-11 21:46//)

11. 要注意顺序。9楼你没有发现你的第一个就会把[i=a v=b]这样的也替换了吗?
(/@Ta/2012-05-11 21:48//)

12. @老虎会游泳 额,还要顺序啊...试试。
有一次我把这样的代码($a=$_GET['a'])写到最后尾,结果…表单没传成功。。我检查了N遍没看出原因
(/@Ta/2012-05-11 21:55//)

13. @郑锋 不是的!你看老虎的,他写的的更好的,你把它包成函数!function re($str){虎代码;return $str;}外面就是echo re($a);
(/@Ta/2012-05-11 22:02//)

14. @arox 噢!谢谢指点迷津。
 function()我还不太会用。
还以为是
echo
re($str)呢.
(/@Ta/2012-05-11 22:07//)

15. arox? 名字是什么意思 用有道翻译它都投降了
(/@Ta/2012-05-11 22:10//)

16. @郑锋 现在实验成了吗?@老虎会游泳 老虎,[前不是只应该用一个反斜干吗?用来转异[,两个\\转异的不就成了第二个\了吗?求解
(/@Ta/2012-05-11 22:17//)

17. 我给自己起的英文名字,哈哈,艾瑞克斯!其实这不是真的意思
(/@Ta/2012-05-11 22:19//)

18. echo '\[\]\\[\\]';
你会知道答案。
(/@Ta/2012-05-11 22:55//)

19. @老虎会游泳 额..实验了,按我写的输出的是,<input name="a" value="b"/>
按你写的,输出
<input name="a"/>
我想让它两个同时替换后输出,没成功
(/@Ta/2012-05-12 00:33//)

下一页 1/2页,共26楼

回复需要登录

8月31日 02:03 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1