<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    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 最新国产在线精品观看| 2021久久精品国产99国产精品| 久久精品视频在线看99| 国产亚洲福利精品一区| 国产精品亚洲二区在线| 蜜国产精品jk白丝AV网站| 一区二区三区精品高清视频免费在线播放 | 高清国产一级精品毛片基地| 国产精品久久午夜夜伦鲁鲁| 精品3d动漫视频一区在线观看| 最新69堂国产成人精品视频| 窝窝午夜看片国产精品人体宴| 热99re久久精品2久久久| 亚洲精品国产成人中文| 国产香蕉精品视频在| 精品中文字幕一区在线| 一本精品中文字幕在线| 99国产精品99久久久久久| 国产99视频精品免视看9| 91国内揄拍国内精品情侣对白| 99久久精品毛片免费播放| 国产精品久免费的黄网站| 国产成人精品日本亚洲11| 日韩精品系列产品| 国产在线精品一区二区三区直播| 八区精品色欲人妻综合网| 国产精品久久久久一区二区三区 | 国产精品熟女一区二区| 国产精品激情综合久久| 欧洲精品在线观看| 亚洲啪AV永久无码精品放毛片| 99久久人妻精品免费二区| 久久精品国产99国产精品澳门| 国产视频精品免费视频| 日本一区二区三区精品国产| 日本精品高清一区二区2021| 日韩精品成人无码专区免费| 国产精品亚洲午夜一区二区三区| 亚洲性日韩精品国产一区二区 | 精品久久久久久久久久久久久久久 | 日韩精品人妻系列无码专区|