echo preg_replace(array("/\{/","/\}/"),array('$row['."'","'".']'),"<Field name=Title>{abc}</Field>");

解决方案 »

  1.   

    变了字符串了.
    $row['123'] $row['abc'] 要能够读取mysql_query查询出来的字段值哦?
      

  2.   


    <?php
    $row = array(
    'abc' => 'I\'m abc',
    '123' => 'I\'m 123',
    );
    $str = '{abc}{123}文本{123sda}文本';
    function getRow($key)
    {
    global $row;
    if (isset($row[$key]))
    {
    return $row[$key];
    }else{
    return $key; # 如果不想输出的话就替换为空
    }
    }
    echo preg_replace("/\{([a-zA-Z0-9_]+)\}/e","getRow('\\1')",$str);
    /**
     * I'm abcI'm 123文本123sda文本
     */
    ?>
      

  3.   

    $s = '{123}';
    //$s = '{abc}';
    echo preg_replace("/\{(.*)\}/","\$row['\\1']",$s);
      

  4.   

    preg_replace("/{([^\s\n\t]+)}/","\$row[\\1]","{123}");
      

  5.   

    把你的需求说清楚再下结论!你的问题是:
    "
    {abc}替换成$row['abc']
    {123}替换成$row['123']
    .....怎么写?
    "$s = '{123}';
    //$s = '{abc}';
    echo preg_replace("/\{(.*)\}/","\$row['\\1']",$s);
    哪里不行?
      

  6.   

    替换为 "$row['abc']" 这个【字符串】 的方法有人写给你了
    替换为 $row['abc']   这个【变量的值】 的方法我也写给你了如果都不是的话,我就不知道你要什么了.
      

  7.   

    我是在一个类里面替换的,定义了替换为 $row['abc']   这个【变量的值】的方法不好使,没把字段的值取出来
      

  8.   

    不好使你说出来么~
    不好使 == 不能使 么?
    只能说你不会调用.
    <?php
    class test
    {
    public $row;
    public function test()
    {
    $row = array(
    'abc' => 'I\'m abc',
    '123' => 'I\'m 123',
    );
    $this->row = $row;
    $str = '{abc}{123}文本{123sda}文本';
    echo preg_replace("/\{([a-zA-Z0-9_]+)\}/e","self::getRow('\\1')",$str);
    } function getRow($key)
    {
    $row = $this->row;
    if (isset($row[$key]))
    {
    return $row[$key];
    }else{
    return $key; # 如果不想输出的话就替换为空
    }
    }
    }
    $test = new test();
    /**
     * I'm abcI'm 123文本123sda文本
     */
    ?>
      

  9.   

    $row是从mysql_query(...)查询出来的结果
      

  10.   

    晕 管你$row哪里来的呢.
    出来是数组就处理数组 对象就处理对象 人挡杀佛,佛挡杀人~