$str = "{$t}天是".date('Y-m-d')."。"
或$str = date("{$t}天是Y-m-d。");

解决方案 »

  1.   

    $t="今";
    $str="'{$t}天是'.date('Y-m-d').'。'";
    eval("\$str=$str;");
    echo $str;//Output 今天是2007-05-24
      

  2.   

    $str = $t.'天是'.date('Y-m-d').'。';
      

  3.   

    $t天是date('Y-m-d')。
    这句话是不能变的,它就是一段混合的代码,是从数据库取出的,其实就是一段文本。
    现在要让这段文本以php方式执行,得到执行后的结果。如:
    从数据库取出的文本是:
    $t="今";
    $str="$t天是date('Y-m-d')。";
    现在怎么得到以上的执行结果:
    $str="今天是2007-5-25";
      

  4.   

    可能要妥协一下做法,使用正则。
    $t后保留一个空格,否则会解析错误.
    参考:
    ====================================================
    $t = '今';
    $str="$t 天是date('Y-m-d')";
    if(preg_match('/date\(.*?\)/is',$str))
    {
    $str = preg_replace('/(date\(\')|\'\)/is','',$str);
    }
    echo str_replace(' ','',date($str));
      

  5.   

    谢谢。$str="$t 天是date('Y-m-d')";
    应该是:$str='$t 天是date(\'Y-m-d\')';
    因为$t是从数据库里读出来的字符串,是不会直接执行变量的。
    date表示这个是函数,也可能是其它函数的。现在这是一个例子,在具体中,这个字符串是不定的。
      

  6.   

    $str = $t."天是".date('Y-m-d')."。";
      

  7.   

    $t="今";
    $day_func = "date";
    $day_param = "Y-m-d";
    $day_out = $day_func($day_param);
    $str='{$t}天是$day_out';
    eval("\$str = \"$str\";");
    echo $str;字符串分开来读,当函数指针处理也是可以的
      

  8.   

    呵呵,可能大家还是没有理解我的意思。
    $t 天是date('Y-m-d')。
    这句话是从数据库取出的,不是想当然可以拆分,要拆分的话,需要分析语法。
      

  9.   

    $t = '今';$str='$t 天是date(\'Y-m-d\')';$str = preg_replace('/\$[a-z_]/ie',"$0",$str);
    $str = preg_replace('/[a-z_]+\(.*?\)/ie',"p('$0')",$str);
    function p($a)
    {
    eval("\$a=$a;");
    return $a;
    }
    echo $str;
    ========================
    参考者改吧.
      

  10.   

    谢谢,foolbirdflyfirst。
    基本找到正解了。