我写了一个正则,用来获取用户输入内容中的会员信息。$input="[会员:11021]" //这个是会员输入的,这里为了直观,我先给他值了;
$content = eregi_replace("\[会员:([0-9]{5,6})\]",get_username("\\1"),$$input); //获取到ID后,把ID交给get_username函数处理下面是函数://这样能正常输出东西
function get_username($id){
return $id;
}
下面是函数://这样就报错了
function get_username($id){
$sql="select * from `user` where `id`=$id";
$rs=mysql_query($sql);
$row=mysql_fetch_array($rs);
}上面代码应该是变量ID的类型不对
//这样获取到的$id竟然成了 空白
function get_username($id){
return intval($id);
}
大家懂我的意思没有啊?就是当正则获取懂那个$id后,交给函数处理,函数的参数是$id,那个id的类型不能自动转换为数字型,也不能用intval转换成数字型,怎么办?怎么办啊?
$content = eregi_replace("\[会员:([0-9]{5,6})\]",get_username("\\1"),$$input); //获取到ID后,把ID交给get_username函数处理下面是函数://这样能正常输出东西
function get_username($id){
return $id;
}
下面是函数://这样就报错了
function get_username($id){
$sql="select * from `user` where `id`=$id";
$rs=mysql_query($sql);
$row=mysql_fetch_array($rs);
}上面代码应该是变量ID的类型不对
//这样获取到的$id竟然成了 空白
function get_username($id){
return intval($id);
}
大家懂我的意思没有啊?就是当正则获取懂那个$id后,交给函数处理,函数的参数是$id,那个id的类型不能自动转换为数字型,也不能用intval转换成数字型,怎么办?怎么办啊?
echo intval($id);竟然输出是空白,那个SQL语言是没错误的,我这里只是写了SQL,其实在程序里面我是又要把ID交给另外一个函数处理的,那个函数我一直在用的,没问题的。
$content = preg_replace("#\[会员:([0-9]{5,6})\]#e",'get_username("\\1")',$$input);
$id="11021";
echo intval($id);
就这两行怎么可能是空,是不是你前面的代码出错了..
eregi_replace都不满足你的需求 ,你应该用preg_replace + e修正符或者preg_replace_callback函数
$content = preg_replace("#\[会员:([0-9]{5,6})\]#e",'get_username("\\1")',$$input);
晕,发现你的$input前面还有个$
应该是
$input="[会员:11021]";//这个是会员输入的,这里为了直观,我先给他值了;
$content = preg_replace("#\[会员:([0-9]{5,6})\]#e",'get_username("\\1")',$input);