<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出錯及解決辦法,有需要的朋友們可以跟著學習下。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 精品高潮呻吟99av无码视频 | 久久青草精品38国产免费| 国产精品xxx电影| 国内精品久久久久影院免费| 精品丝袜人妻久久久久久| 99在线热视频只有精品免费| 国产精品龙口护士门在线观看| 999国内精品永久免费视频| 精品视频一区二区三区在线观看| 国产三级精品三级男人的天堂 | 精品人人妻人人澡人人爽牛牛| 久久一本精品久久精品66| 精品久久久无码中文字幕天天| 国产精品你懂的在线播放| 竹菊影视国产精品| 国产精品毛片VA一区二区三区| 亚洲人午夜射精精品日韩| 久9视频这里只有精品8| 亚洲va精品中文字幕| 亚洲国产精品无码久久久蜜芽| 精品久久久无码中文字幕天天| 国产精品va在线观看无| 亚洲色在线无码国产精品不卡| 78成人精品电影在线播放| 亚洲国产精品一区二区第一页| 久久精品无码av| 免费精品久久久久久中文字幕| 精品亚洲国产成人av| 97久久超碰国产精品2021| 久久国产亚洲精品无码| 久久久久成人精品免费播放动漫 | 久久久免费的精品| 中文字幕精品亚洲无线码一区| 亚洲国产精品成人久久蜜臀| 国产乱子伦精品免费女| 国产精品二区在线| 日本精品一二三区| 精品国产高清自在线一区二区三区| 亚洲综合久久精品无码色欲| 久9视频这里只有精品| 91精品国产福利在线观看麻豆|