<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 久久99久久99小草精品免视看| 国拍在线精品视频免费观看 | 精品久久久久久中文字幕一区| 国产国拍亚洲精品mv在线观看| 精品乱码一区内射人妻无码| 亚洲国产精品成人午夜在线观看| 久久久无码精品亚洲日韩蜜桃| 国产精品人人做人人爽人人添| 国产精品免费综合一区视频| 中文精品一区二区三区四区 | 精品国产一区二区三区香蕉| 久久久精品人妻一区二区三区四| 国产成人精品国内自产拍| 国产精品第一页在线| 国产成人久久精品亚洲小说| 国产精品亚洲AV三区| 精品一卡2卡三卡4卡乱码精品视频| 精品一区二区三区在线观看视频| 国产精品jizz视频| 亚洲日韩精品一区二区三区 | 国产精品白丝jkav网站| 国产日韩精品一区二区在线观看 | 国产成人精品电影在线观看| 亚洲日韩中文在线精品第一 | 日韩精品系列产品| 精品国内片67194| 一夲道无码人妻精品一区二区| heyzo高无码国产精品| 国产一区二区三区国产精品| 手机国产乱子伦精品视频| 国产麻豆剧传媒精品国产AV| 成人精品视频一区二区三区尤物| 国产精品久久久久蜜芽| 国产成人午夜精品影院游乐网 | 国产成人精品日本亚洲语音| 亚洲色在线无码国产精品不卡| 美国发布站精品视频| 一本色道久久88—综合亚洲精品| www.999精品视频观看免费| 一区二区亚洲精品精华液 | 五月天婷婷精品免费视频|