<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    PHP7 preg_replace出錯及解決辦法

    導讀在本篇文章里小編給大家整理的是一篇關于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 出錯及解決辦法的文章就介紹到這了,希望大家以后多多支持好二三四!

    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    php判斷時間戳是否為今天實例講解 PHP實現JWT的Token登錄認證 PHP中empty()和isset()的區別介紹 php去掉一維數組的鍵值的實例方法 php7安裝mysqli實例講解 PHP對接抖音開發平臺接口的詳細教程 PHP7中對十六進制字符串處理的問題詳解 php生成唯一uid的解決方法詳解 php兩種基本的輸出方及實例詳解 PHP遍歷數組的6種方式總結 JS截取字符串的三種方法詳解 Python常用的正則表達式處理函數詳解 一文秒懂python正則表達式常用函數 python正則表達式語法學習筆記 Python&nbsp;垃圾回收機制詳解 Python實現城市公交網絡分析與可視化 Python數據分析處理(三)--運動員信息的分組與聚合 基于Python實現PDF區域文本提取工具 詳解python的循環 python實現新年倒計時實例代碼 五年班的學習計劃怎么寫 五年級的學習計劃 初中新學期學習計劃怎么寫 關于英語的學習計劃怎么寫 怎么寫暑假學習計劃書 4年級數學學習計劃怎么寫 后半學期的學習計劃怎么寫 上學期學習計劃怎么寫 五年級的學習計劃書怎么寫 小學一年級學習計劃怎么寫 暑假學習計劃表怎么寫 八年級學習計劃怎么寫 暑期學習計劃表怎么寫 小學四年級學習計劃怎么寫 一年級的學習計劃怎么寫 小學生的學習計劃怎么寫 工作的學習計劃怎么寫 初三學生學習計劃怎么寫 新學期語文學習計劃怎么寫 美國留學學習計劃怎么寫 出國留學學習計劃怎么寫
    Top 精品中文字幕一区二区三区四区| 中文字幕亚洲精品资源网| 亚洲国产日韩精品| 99精品福利国产在线导航| 国产精品亚洲lv粉色| 久久久久亚洲精品美女| 亚洲午夜成人精品电影在线观看| 国产精品成人不卡在线观看| 国产亚洲精品高清在线| 国产精品玩偶在线观看| 91久久精品国产91久久性色tv| 99精品高清视频一区二区| 成人精品一区久久久久| 666精品国产精品亚洲| 奇米影视7777久久精品人人爽| 精品香蕉久久久午夜福利| 亚洲视频精品在线观看| 精品少妇一区二区三区视频| 精品一区二区三区在线视频观看 | 一本色道久久综合亚洲精品高清| 精品国产乱码欠欠欠欠精品| 99久久精品全部| 久久99精品国产99久久6男男| 国产91精品黄网在线观看| 精品无码成人网站久久久久久| 国产精品久久免费| 98精品国产高清在线看入口| 国产精品水嫩水嫩| 99热成人精品热久久669| www国产亚洲精品久久久| 国产精品成人四虎免费视频| 中文字幕日韩精品一区二区三区| 99热这里只有精品免费播放| 久久精品国产亚洲AV麻豆不卡 | 久久精品国产亚洲AV麻豆~| 国产在线精品一区二区不卡麻豆| 国产69精品久久久久9999| 国产一精品一aⅴ一免费| 国产精品视频免费一区二区三区| 亚洲精品无码专区久久| 免费精品国产自产拍在线观看图片|