<address id="zhpbl"></address>
<noframes id="zhpbl">
<address id="zhpbl"><form id="zhpbl"><th id="zhpbl"></th></form></address>

    <em id="zhpbl"></em>

      <address id="zhpbl"><th id="zhpbl"><progress id="zhpbl"></progress></th></address>
      更多精彩內容,歡迎關注:

      視頻號
      視頻號

      抖音
      抖音

      快手
      快手

      微博
      微博

      PHP7 preg_replace出錯及解決辦法

      文檔

      PHP7 preg_replace出錯及解決辦法

      在本篇文章里小編給大家整理的是一篇關于PHP7 preg_replace出錯及解決辦法,有需要的朋友們可以跟著學習下。e修飾符因為存在安全隱患,自5.3 開始就已經標記為了待移除的內容。轉而接替的是 preg_replace_callback,此方法第二個參數為一個回調函數,回調函數會自動傳入比配的分組作為參數。
      推薦度:
      導讀在本篇文章里小編給大家整理的是一篇關于PHP7 preg_replace出錯及解決辦法,有需要的朋友們可以跟著學習下。e修飾符因為存在安全隱患,自5.3 開始就已經標記為了待移除的內容。轉而接替的是 preg_replace_callback,此方法第二個參數為一個回調函數,回調函數會自動傳入比配的分組作為參數。

      問題描述:

      PHP7廢棄了preg_replace?

      原本是中php5中處理url中后面參數替換清除的,代碼如下

      $url?=?preg_replace('/([?&])src=[^&]+(&?)/e',?'"$2"==""?"":"$1"',?$url);

      但是到php7中就報錯了

      需要用preg_replace_callback來替換,請問該咋辦?

      相關代碼

      $url?=?preg_replace('/([?&])src=[^&]+(&?)/e',?'"$2"==""?"":"$1"',?$url);
      問題分析:

      e修飾符因為存在安全隱患 自 5.3 開始就已經標記為了待移除的內容。

      轉而接替的是 preg_replace_callback,此方法第二個參數為一個回調函數,回調函數會自動傳入比配的分組作為參數。在回調函數內部通過數組下標訪問匹配組。

      preg_replace_callback('/([?&])src=[^&]+(&?)/',?function($matches){
      ????return?$matches[2]==""?"":$matches[1];
      },?$url);

      知識點擴展:

      PHP7已經刪除了preg_replace的e修飾符

      官網提示是這樣的,對/e修飾符的支持已刪除。請改用preg_replace_callback()

      原因是/e 修正符使 preg_replace() 將 replacement 參數當作 PHP 代碼(在適當的逆向引用替換完之后),會被一句話后門使用

      看看smarty中是也是這樣用的,也是存在問題

      $source_content?=?preg_replace($search.'e',?"'"
      .?$this->_quote_replace($this->left_delimiter)?.?'php'
      .?"'?.?str_repeat(\"\n\",?substr_count('\\0',?\"\n\"))?.'"
      .?$this->_quote_replace($this->right_delimiter)
      .?"'"
      ,?$source_content);
      可以把smarty模板修改成這個
      $source_content?=?preg_replace_callback($search,?function?($matches){
      $str="";
      $str.=$this->_quote_replace($this->left_delimiter)?.?'php';
      $str.=str_repeat("\\n\\",?substr_count($matches[1],?"\\n\\"));
      $str.=$this->_quote_replace($this->right_delimiter);
      return?$str;
      },?$source_content);

      到此這篇關于PHP7 preg_replace 出錯及解決辦法的文章就介紹到這了,希望大家以后多多支持好二三四!

      文檔

      PHP7 preg_replace出錯及解決辦法

      在本篇文章里小編給大家整理的是一篇關于PHP7 preg_replace出錯及解決辦法,有需要的朋友們可以跟著學習下。e修飾符因為存在安全隱患,自5.3 開始就已經標記為了待移除的內容。轉而接替的是 preg_replace_callback,此方法第二個參數為一個回調函數,回調函數會自動傳入比配的分組作為參數。
      推薦度:
      為你推薦
      資訊專欄
      熱門視頻
      相關推薦
      php判斷時間戳是否為今天實例講解 PHP實現JWT的Token登錄認證 PHP中empty()和isset()的區別介紹 php去掉一維數組的鍵值的實例方法 php7安裝mysqli實例講解 PHP對接抖音開發平臺接口的詳細教程 PHP7中對十六進制字符串處理的問題詳解 php生成唯一uid的解決方法詳解 php兩種基本的輸出方及實例詳解 PHP遍歷數組的6種方式總結 JS截取字符串的三種方法詳解 Python常用的正則表達式處理函數詳解 一文秒懂python正則表達式常用函數 python正則表達式語法學習筆記 帶動物的詩句 如何關閉360畫報 叮咚怎么搶菜 網易云一起聽怎么添加歌 adobe creative cloud是什么軟件 24歲是什么年華 關于杏花的詩句 帶飛的詩句 形容女人漂亮的詩句 春花的詩句 描寫初春的詩句 描寫燕子的詩句 帶有春字的詩句 春游的詩句 形容美女的詩句 有意境的詩句 形容春天的詩句唯美 踏春的詩句 純棉白色衣服發黃了怎么可以洗白 夏天衣服背部發黃怎樣洗白 白衣服有點發黃怎么洗白 白棉麻衣服發黃洗白小竅門 白衣服發黃了怎么洗才能白 用什么方法可以把發黃衣服洗白 白色衣服發黃怎么洗白了 藍色衣服發黃快速洗白
      Top 少妇高潮太爽了在线视频