关于 webman $request->input('栏位') 问题分享与解决

啾啾米

当 post 跟 get 取得中少了一些资讯 '%', '^', '*', '(', ')', '+' 会变成空格,或者被取代掉
这些是因为在 Request.php 里面的 parse_str 造成的

做法可以在Request.php
等方式进行处理 
 如 parse_str($st , $xxx);
透过以下方式取代掉

  //在 parseGet();上面进行处理
  parseGet();
  $query_string = $this->replaceWord($query_string, 'GET');
  parsePost();上面进行处理
  $body_buffer = $this->replaceWord($body_buffer, 'POST');
  /**
     * fix some special word not show in parse_str
     * @param string $str
     * @param string $method POST GET
     * @return string
     */
    protected function replaceWord(string $str,string $method)
    {
        $wordStr = ['%', '^', '*', '(', ')', '+'];
        $replaceStr = ['%25', '%5E', '%2A', '%28', '%29', '%2B'];
        if ($method == 'GET') {
            $wordStr = last($wordStr);
            $replaceStr = last($replaceStr);
        }
        $str = str_replace($wordStr, $replaceStr, $str);
        return $str;
    }

就可以正常展示webman里面的 $request->input post get 里面的特殊符号的内文了

447 0 0
0个评论

啾啾米

220
积分
0
获赞数
0
粉丝数
2023-06-02 加入
🔝