$id=$_SESSION['id'];
$info=$_GET['info'];
$arr=expolde("@",$info);可能有朋友会问直接将$id直接输出$id的值;因为$id是管理写进的然后用户点击这个连接tool.php?info=@qq@帐号$id
然后就会自动输出用户的ID了。我想过用eval这个函数但是又有朋友说这个不安全。想请问下还有没有其它办法将数组$arr[2]里的$id输出成变量$id呢??

解决方案 »

  1.   

    處理一下就可以啦.另外是 explode 不是 expolde
    $id='8888';
    $str='@qq@帐号$id';
    $str=preg_replace('/\$id/i',$id,$str);
    $arr=explode("@",$str);
    var_dump($arr);
      

  2.   


    但是$id不是固定的。当$id有改变的时候怎么办呢?
    比如他有多个这样的配置@qq@帐号$uid#@qq@帐号$id#@name@帐号$id#@qq@帐号$id#   #代表是多个用来切割成数组的
      

  3.   

    注意 $id=$_SESSION['id']; 那么 你的id 都是固定的,这种传递 有意义吗?先弄清楚自己的设计是否有问题
      

  4.   

    因为这些@qq@帐号$uid#@qq@帐号$id是由一些网站高级用户配置生成的数组文件的然后普通用户再使用这些配置信息。
    这样用户使用这些配置后就会调用到已经设置好的变量了。
      

  5.   

    搞了半天你都没有说清楚你接收到的 url 串是什么样子的
      

  6.   

    其实URL串就相当于数组。这个只是预览使用的。实际使用的时候是把=@qq@帐号$id这一些类形的保存成数组文件,然后用户使用的
      

  7.   

    本帖最后由 xuzuning 于 2011-12-31 13:33:50 编辑
      

  8.   


    简单来说就是数组里面有一个变量
    如 $list=array(
    'info'=>'@qq@帐号$id'  //这里面有$id这个变量,当我输出这个数组时怎么才能将$id输出已经设置好的$id=$_SESSION['id']; 假设这里不等于$_SEEION['id']面是:8888
    )echo  $list[info];   //那么这里怎么才能输出:@qq@帐号8888  
      

  9.   

    本帖最后由 xuzuning 于 2011-12-31 13:47:55 编辑
      

  10.   


    因为$id这个是会变的。我设置有多个变量比如$name,$job等这类但是一次只调用一个。
      

  11.   

    第一、在反复追问下,你也没有说明过$id处可能是变量及变量来自何方。
          我如何知道哪里是变量,该取何值?
    第二、'info'=>'@qq@帐号$id' 中只会出现字符串 $id ,绝无可能将其视为变量!
      

  12.   

    $id这个是在php里设置好的其中一个变量 
    然后$id来自数组文件里,但是在数组文件里他并不是固定的。这要看用户提交了哪个变量过来
    比如我在用户后台里设置了一些标识:ID:$id,姓名:$name,城市:$city等
    只要用户提交了$id或其它的标识。那么在那个页面就显示出来
      

  13.   

    本帖最后由 xuzuning 于 2012-01-01 10:06:45 编辑
      

  14.   

    这个对$id起效了。但是我将$new又是直接输出$new了
      

  15.   

    看了你们争论了半天不是  xuzuning 同学很热情。而你的需求很是混乱。
    说清楚,问题才更清楚。难道是我没有看明白、