摘要:在之前編寫PHP工具類時,常用一個正則替換函數為 preg_replace(),加上正則修飾符 /e,就能夠執行強大的回調函數,實現模板引擎...
在之前編寫PHP工具類時,常用一個正則替換函數為 preg_replace(),加上正則修飾符 /e,就能夠執行強大的回調函數,實現模板引擎編譯(也就是字符串替換)。此方法經過多個項目的實驗發現存在不足,例如:雙引號被轉義的問題。
經過文檔的查詢和學習發現可以使用另外一個正則替換回調函數 preg_replace_callback(),在此做個記錄,參考方法如下:
$data = curl_menu(ACCESS_TOKEN, preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $data));
替換如下:
function decodeUnicode($str){ return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H*", $matches[1]));'), $str); }
網友評論:
2016-12-23 14:54:39 回復
網友評論:
2016-07-05 22:06:44 回復