登录
立即注册
首页
>
绿虎论坛
>
历史版块
>
编程
>
PHP
>
讨论/求助
正则替换求指点!
西门吹血
@Ta
2012-05-11
12879点击
举个例子
$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
HYGSH
@Ta
/ 2012-05-11 /
样
/
源
(*.)
2
西门吹血
@Ta
/ 2012-05-11 /
样
/
源
@
HYGSH
晕,什么阿
3
小易
@Ta
/ 2012-05-11 /
样
/
源
preg_replace("#[i=(.*)s+v=(.*)]#i","<input name="$1" value="$2"/>");试试可不可以 触屏打这些烦死
4
西门吹血
@Ta
/ 2012-05-11 /
样
/
源
恩,我试试.
5
3srs-arox
@Ta
/ 2012-05-11 /
样
/
源
"/\[i\=(a)\]/","<input name='\\1'>",$a另外那个在写一个就好了,弄成函数,用函数输出你的$a,它规搜索替换的!不知我说的对否!
6
西门吹血
@Ta
/ 2012-05-11 /
样
/
源
@
小易
恩,你的是安卓机吗?我姐的一千五,不过不支持点触笔,只能用手指点,要是打起字母来就想哭:(
我想你的应该可以,但是输出的会不会是这个?→
[i=a]<input name="a" value="你好"/>
你没有替换第一个啊
7
小易
@Ta
/ 2012-05-11 /
样
/
源
HTC G12不说了 打代码麻烦死
8
小易
@Ta
/ 2012-05-11 /
样
/
源
电容屏就这样 也有电容笔的 只不过用不着
9
西门吹血
@Ta
/ 2012-05-11 /
样
/
源
@
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);
//输出这样写对吗?
10
老虎会游泳
@Ta
/ 2012-05-11 /
样
/
源
$str=preg_replace('!\\[i=(\w+)\s+v=(.*)\\]!U','<input name="\\1" value="\\2"/>',$str);
$str=preg_replace('!\\[i=(\w+)\\]!U','<input name="\\1"/>',$str);
11
老虎会游泳
@Ta
/ 2012-05-11 /
样
/
源
要注意顺序。9楼你没有发现你的第一个就会把[i=a v=b]这样的也替换了吗?
12
西门吹血
@Ta
/ 2012-05-11 /
样
/
源
@
老虎会游泳
额,还要顺序啊...试试。
有一次我把这样的代码($a=$_GET['a'])写到最后尾,结果…表单没传成功。。我检查了N遍没看出原因
13
3srs-arox
@Ta
/ 2012-05-11 /
样
/
源
@
郑锋
不是的!你看老虎的,他写的的更好的,你把它包成函数!function re($str){虎代码;return $str;}外面就是echo re($a);
14
西门吹血
@Ta
/ 2012-05-11 /
样
/
源
@
arox
噢!谢谢指点迷津。
function()我还不太会用。
还以为是
echo
re($str)呢.
15
西门吹血
@Ta
/ 2012-05-11 /
样
/
源
arox? 名字是什么意思 用有道翻译它都投降了
16
3srs-arox
@Ta
/ 2012-05-11 /
样
/
源
@
郑锋
现在实验成了吗?
@
老虎会游泳
老虎,[前不是只应该用一个反斜干吗?用来转异[,两个\\转异的不就成了第二个\了吗?求解
17
3srs-arox
@Ta
/ 2012-05-11 /
样
/
源
我给自己起的英文名字,哈哈,艾瑞克斯!其实这不是真的意思
18
老虎会游泳
@Ta
/ 2012-05-11 /
样
/
源
echo '\[\]\\[\\]';
你会知道答案。
19
西门吹血
@Ta
/ 2012-05-12 /
样
/
源
@
老虎会游泳
额..实验了,按我写的输出的是,<input name="a" value="b"/>
按你写的,输出
<input name="a"/>
我想让它两个同时替换后输出,没成功
<
1
2
>
添加新回复
回复需要
登录
。
我想你的应该可以,但是输出的会不会是这个?→
[i=a]<input name="a" value="你好"/>
你没有替换第一个啊
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);
//输出这样写对吗?
$str=preg_replace('!\\[i=(\w+)\\]!U','<input name="\\1"/>',$str);
有一次我把这样的代码($a=$_GET['a'])写到最后尾,结果…表单没传成功。。我检查了N遍没看出原因
function()我还不太会用。
还以为是
echo
re($str)呢.
你会知道答案。
按你写的,输出
<input name="a"/>
我想让它两个同时替换后输出,没成功