Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_替换_回拨号码404作为值_Php_Regex_Get_Preg Replace Callback - Fatal编程技术网

Php preg_替换_回拨号码404作为值

Php preg_替换_回拨号码404作为值,php,regex,get,preg-replace-callback,Php,Regex,Get,Preg Replace Callback,对我来说,事情并不清楚。在我刚刚使用preg_replace之前,但是在一个更新版本的php上,我不得不使用preg_replace_回调 PHP消息:PHP警告:preg_replace_回调:要求参数2“[$1_1]”在 此&c=jQuery31102606949325169924_1480249921485?_=1484049921486 我不知道,但我知道当我在任何有白色页面的地方插入404号作为值的url时 解决方案: 方法返回第一个找到的值 在$this->aRoutingParse

对我来说,事情并不清楚。在我刚刚使用preg_replace之前,但是在一个更新版本的php上,我不得不使用preg_replace_回调

PHP消息:PHP警告:preg_replace_回调:要求参数2“[$1_1]”在

此&c=jQuery31102606949325169924_1480249921485?_=1484049921486

我不知道,但我知道当我在任何有白色页面的地方插入404号作为值的url时

解决方案:

方法返回第一个找到的值 在$this->aRoutingParse中,我有了这个,不知怎的崩溃了 数组'404'=>array'404','task=page&action=404',

需要一个回调函数作为第二个参数。在preg_replace_callback'中传递字符串替换模式\[.+?\]!"i","i","v[1]

相反,preg_replace_callback'\[.+?\]!i'、'[$1.'$i.]'、$v[1]使用:


看起来你需要用preg_替换。替换preg_Replace_callback'\[.+?\]!i',“[$1'.$i.]”,$v[1]与preg_replace'\[.+?\]!i',[$1.'$i.]',$v[1]。是的,我发现了另一个错误。此修复程序:50%的问题我想快速替换,我使用文件中的全部替换。第二个问题与第一个结果匹配,如果我有test/[.]/[.]和test/[.]/[.]/[.]/parm,我请求test/acb/bcs/pams,并且我得到了test/[.]/[.]第一个匹配,则跳过其他问题
$this->aURI = explode('/', $_SERVER['SCRIPT_NAME']);
$sRequest = preg_replace('!'.$this->sURI.'(.*)$!i',  '$1', $_SERVER['REQUEST_URI']);
        if(substr($sRequest, -1)!='/')
            $sRequest .= '/';
        $sGets = $this->parseUrl($sRequest);
    private function parseUrl($sRequest){   
    $sVars = null;
    foreach($this->aRoutingParse AS $k => $v){

        if(!is_array($v))
            continue;

        preg_match_all('!\[(.+?)\]!i', $v[0], $aExpression_);
        $sExpression = preg_replace_callback('!\[(.+?)\]!i', function($m) use ($k){ 
            return $this->transformParam($m[1], $k);
        }, $v[0]);


        if(preg_match_all('!'.$sExpression.'!i', $sRequest, $aExpression__)){


            foreach($aExpression__ AS $k_ => $v_){
                foreach($v_ AS $kkk => $vvv){

                    if(!isset($aExpression_[1][$k_-1]))
                        $aExpression_[1][$k_-1] = null;

                    if($kkk>0)
                        $aExpression[] = array($aExpression_[1][$k_-1].'_'.$kkk, $vvv);
                    else
                        $aExpression[] = array($aExpression_[1][$k_-1], $vvv);

                }
            }

            unset($aExpression[0]);
            $iCount = count($aExpression__[0]);
            if($iCount>1){
                for($i=0;$i<$iCount;$i++){
                    if($i>0)
                        $sVars .= '&'.preg_replace_callback('!\[(.+?)\]!i', '[$1_'.$i.']', $v[1]);
                    else
                        $sVars = '&'.$v[1];                        
                }

            }else                
                $sVars = '&'.$v[1];

            foreach($aExpression AS $k => $v_){
                if(!isset($v['_'.$v_[0]]))
                    $v['_'.$v_[0]] = null;

                if(!is_array($v['_'.$v_[0]]))
                    $sVars = str_replace('['.$v_[0].']', $v_[1], $sVars);

                else {
                    $this->aRoutingParse = array($v['_'.$v_[0]]);
                    $sVars = $sVars.$this->parseUrl($v_[1]);

                }
            }                
            break;
        }
    }    

    return $sVars;
}
preg_replace('!\[(.+?)\]!i', '[$1_'.$i.']', $v[1])