$text = preg_replace("/(.*?)#(.*?)#(.*?)/i",'$2',$text); 
想把$2 url编码一下 
 $text = preg_replace("/(.*?)#(.*?)#(.*?)/i", rawurlencode('$2'),$text); 发现函数把'$2 当成一个字符了 变量了 如何写?替换什么结果都一样了

解决方案 »

  1.   

    $text = preg_replace("/(.*?)#(.*?)#(.*?)/e", "rawurlencode('$2')",$text); 
      

  2.   

     楼上  $text = preg_replace("/(.*?)#(.*?)#(.*?)/i", "$1<a href='{$webaddr}/search?q=$2&act=search'>#$2#</a>$3",$text); //专题原来是这样 改如何把q参数加转换? 你的我加了php错误
      

  3.   


    $output = preg_replace(
    array(
    "/\<a(\s*[^\>]+\s*)href\=([\"|\']?)([^\"\'>\s]+\.php\?[^\"\'>\s]+)([\"|\']?)/ies",
    "/\<a(\s*[^\>]+\s*)href\=([\"|\']?)(\/[^\"\'>\s]+\.php)([\"|\']?)/ies",
    "/\<form(\s*[^\>]+\s*)action\=([\"|\']?)([^\"\'>\s]+)([\"|\']?)/ies",
    ),
    array(
    "Htm_cv('\\3','<a\\1href=\"')",
    "Htm_cv('\\3','<a\\1href=\"')",
    "Htm_cv('\\3','<form\\1action=\"')",
    ),
    $output
    );Htm_cv是自定义函数,\\1,\\2,\\3,分别是正则里()的部分。
      

  4.   

    这个是phpwind里的,自己按着你的需求改一下。
      

  5.   

        $text = preg_replace("/(.*?)#(.*?)#(.*?)/i", "$1<a href='{$webaddr}/search?q=$2&act=search'>#$2#</a>$3",$text); //专题我就想给$2 换成 "rawurlencode('$2')" 出错  3楼你的这个我该怎么套用?
      

  6.   

    本帖最后由 xuzuning 于 2010-06-13 11:46:24 编辑
      

  7.   

    $text = preg_replace("/(.*?)#(.*?)#(.*?)/ie", "'$1<a href=\'{$webaddr}/search?q='.rawurlencode($2).'&act=search\'>#'.rawurlencode($2).'#</a>$3'",$text);
      

  8.   

    注意 加e修正符,或者用preg_replace_callback函数代替