$msg="aa请aa帮忙做aa"  
$b1="我"
$b2="你"
$b3="事"将$msg变成“我请你帮忙做事”$msg="aa喜欢aa."  
$b1="他"
$b2="打球"
将$msg变成“他喜欢打球”

解决方案 »

  1.   

    <?php
    $msg="aa请aa帮忙做aa";
    $b1="我";
    $b2="你";
    $b3="事";
    //$arr = array($b1, $b2, $b3);
    //echo preg_replace(array("'aa'", "'aa'", "'aa'"), $arr, $msg, 1);
    for ($i=1; $i<=3; $i++)
    {
      $msg = preg_replace("'aa'", ${"b" . $i}, $msg, 1);
    }
    echo $msg;
      

  2.   

    用array+foreach好点,因为他说个数不确定啊
    或者for ($i=1; $i<=count($array); $i++)
      

  3.   

    我说完整一点吧:数据我是从数据库提取出来的,
    如:
    %1="我";
    %2="你";
    %3="事";
    %4="球";
    以上参数是固定的;
    数据表如下:
    数据                    参数
    ----------------------------------
    %s请%s帮忙做%s          %1,%2,%3
    -----------------------------------
    %s喜欢%s                %1,%4 
    -----------------------------------如我想翻译第一条数据 "%s请%s帮忙做%s"  为  "我请你帮忙做事”$msg="%s请%s帮忙做%s";
    $parameter="%1,%2,%3";
    $tmp1 = explode(",",$parameter);接下去怎样做呢?
      

  4.   

    $temp = AddSlashes($msg);
    eval( "\$temp = \"$temp\";" );
    $msg1= StripSlashes($temp);??
      

  5.   

    $s1="我";
    $s2="你好吗";
    $content="%1===%2";
    $content=strtr($content,"%1",$s1);
    $content=strtr($content,"%2",$s2);echo $content;//为什么会乱码
      

  6.   

    例子:$msg="aa请aa帮忙做aa...."  
    $b1="我"
    $b2="你"
    $b3="事"$msg = str_replace("aa", "%s", $msg);
    $msg = sprintf($msg, $b1, $b2, $b3);
      

  7.   

    sprintf不行啊,如果我下一条记录还多一个参数那怎么办,
    怎样动态改变sprintf($msg, $b1, $b2, $b3)啊?
      

  8.   

    1、
    $b1="我";
    $b2="你";
    $b3="事";
    $dict = array($b1,$b2,$b3);//组织成数组以便于操作
    //回调函数
    function foo() {
      return array_shift($GLOBALS['dict']);
    }
    echo preg_replace("/(aa)/e","foo()",$msg);2、你用%1做变量名是错误的
    $a1="我";
    $a2="你";
    $a3="事";
    $a4="球";$msg="%s请%s帮忙做%s";
    $parameter="%1,%2,%3";
    $parameter = str_replace("%",'$a',$parameter);
    eval("printf(\"$msg\",$parameter);");3、eval函数同样能解决你对hahawen(变态的大龄青年) 解答的疑问