日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php新版本废弃 preg_replace /e 修饰符

發布時間:2025/6/15 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php新版本废弃 preg_replace /e 修饰符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
php新版本廢棄 preg_replace /e 修飾符 分類: PHP 2014-12-16 13:00 3531人閱讀 評論(3) 收藏 舉報 php正則 最近服務器php版本升級到了 5.6 發現出了很多警告 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead 一開始沒注意,后來發現 很多這樣的警告,于是網上查了下 發現 php5.5版本以上 就廢棄了 preg_replace 函數中 /e 這個修飾符 /e 這個修飾符的意思 就是讓 正則替換的 時候 替換規則 支持 php 代碼 那么 應該怎么辦呢 其實 只要 把 preg_replace 里面 有 /e 修飾符的代碼 修改成 preg_replace _callback 然后重新寫下就好了 例子 最簡單的 寫法 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 preg_replace("/([A-Z])/e", "'_' . strtolower('\\1')", $str) 修改成 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 preg_replace("/([A-Z])/",'gwyy', $str); function gwyy($match) { return '_'.strtolower($match[1]); } 第二個參數是個 函數名 然后在外部寫一個函數 但是 我們每次定義一個函數 感覺很麻煩 所以我們可以用匿名函數比如說 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 preg_replace("/([A-Z])/e", "'_' . strtolower('\\1')", $str) 修改成 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 preg_replace_callback('/([A-Z])/', function ($matches) { return '_' . strtolower($matches[0]); }, $str) 即可這里特別警告 修改后 /([A-Z])/e 最后一個 e 一定要去掉 不然就出錯了 如果在類里面 還能這么寫 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 class a { private $joinStr = "__AAAAA__"; public function __construct() { $this->joinStr = preg_replace_callback("/__([A-Z_-]+)__/sU",array($this,'gwyy'),$this->joinStr); echo $this->joinStr; } public function gwyy($match) { print_r($match); return 'aaa'; } } $a = new a(); 第二個參數不是一個函數 而變成了一個數組 表示 調用 $this 類 里面的 gwyy 方法 執行 gwyy會自動接受到 一個 $match 參數表 下面再看一個稍微復雜點的例子 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 $patterns = '/'.$begin.$parseTag.$n1.'\/(\s*?)'.$end.'/eis'; $replacement = "\$this->parseXmlTag('$tagLib','$tag','$1','')"; $content = preg_replace($patterns, $replacement,$content); 這個替換 使用了 類里面的自定義方法 如果 你再 用匿名函數直接套的話 會提示 錯誤 因為 匿名函數上下文里面 并沒有 該方法和 該變量 所以 要用 use() 來引入 同時 注意 一定要 把 正則里面 e 去掉 [php] view plaincopy在CODE上查看代碼片派生到我的代碼片 $that = $this; $patterns = '/'.$begin.$parseTag.$n1.'\/(\s*?)'.$end.'/is'; $content=preg_replace_callback($patterns, function($matches) use($tagLib,$tag,$that){ return $that->parseXmlTag($tagLib,$tag,$matches[1],''); },$content); 這里 用 $that 代替 $this; 好了 今天先記錄到這里吧 。小煙原創,轉載請注明出處!

?

總結

以上是生活随笔為你收集整理的php新版本废弃 preg_replace /e 修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美操穴视频 | 亚洲午夜免费 | 美日韩精品一区二区 | 中文字幕久久久久久久 | 99在线视频免费观看 | 成人精品一区二区三区在线 | 粉嫩精品久久99综合一区 | 成人片黄网站久久久免费 | 亚洲欧美自偷自拍 | 看黄色一级片 | 男人的天堂在线观看av | 国偷自产视频一区二区久 | 国产成人亚洲精品 | 深夜福利久久 | 日韩天堂网| 国产伦精品一区二区三区视频网站 | 欧美激情一区二区三区免费观看 | 中文字幕日韩欧美一区二区三区 | 久久六六 | 国产欧美在线观看视频 | 精品国产无码一区二区三区 | 夜夜爱爱 | av在线资源网| www.777奇米 | 国产福利视频在线 | 一本视频| 91网站永久免费看nba视频 | 国内黄色片 | 亚洲免费视频一区二区三区 | 波多野 在线 | 国产精品一区网站 | 中文字幕9 | 蜜臀av一区二区三区激情综合 | 玖草在线观看 | 国产一区二区三区黄 | 国产日韩欧美在线观看视频 | 欧美做爰猛烈床戏大尺度 | av在观看| 亚洲涩涩图 | 免费在线看黄色 | wwwsss在线观看 | 午夜tv | 欧美一级二级片 | 伊人免费在线观看 | 亚洲一级Av无码毛片久久精品 | av毛片在线免费观看 | 日韩av一 | 99资源站 | av激情影院 | 国产精品日韩av | 亚洲AV不卡无码一区二区三区 | 美女黄色免费网站 | 色之久久综合 | 国产精品视频一二三区 | 色综合天天色综合 | 日本少妇高潮喷水xxxxxxx | 精品久久久影院 | 天天添天天操 | 欧美猛交免费 | 视频一区三区 | 99国产精品99久久久久久粉嫩 | 国产精品久久久久久久久久久久久久久 | 玖草在线观看 | 少妇真人直播免费视频 | 四虎综合 | 日韩欧美中文在线 | 国产一区二区三区18 | 国产精品国产三级国产aⅴ原创 | 国模私拍视频在线 | 国产美女免费 | 国产精品电影一区二区三区 | 国语av在线| 国产精品第 | 黄色成人在线免费观看 | 久草视频在线免费看 | 一本综合久久 | 亚洲午夜剧场 | 一区二区三区四区影院 | 91手机视频在线观看 | 国产在线观看一区 | 亚洲五级片| 91亚洲国产| av在线播放一区二区三区 | 日本大尺度吃奶做爰久久久绯色 | 日韩精品成人在线 | 亚洲AV无码精品色毛片浪潮 | 玖玖999 | 国产精品老女人 | 一级伦理农村妇女愉情 | 一本色道久久综合亚洲二区三区 | 亚洲av无码一区二区三区在线 | 亚洲涩综合 | 中日黄色片 | 黄色片视频 | 美女隐私免费看 | 一卡二卡三卡四卡 | 日韩一区二区三区在线观看 | 亚洲人人夜夜澡人人爽 | 国产尤物av|