[英]Help converting PHP eregi to preg_match
我想知道是否有人可以幫我轉換一段現已棄用的PHP代碼。
這是我試圖轉換的單行:
if(eregi(trim ($request_url_handler[$x]),$this->sys_request_url) && $this->id_found == 0){
它是返回網站配置設置的函數的一部分。 以下是整個功能。
// GET CORRECT CONFIG FROM DATABASE
function get_config($db)
{
global $tbl_prefix;
$db->query("SELECT cid,urls FROM ".$tbl_prefix."sys_config ORDER BY cid");
while($db->next_record()){
$request_url_handler = explode("\n",$db->f("urls"));
if(empty($request_url_handler[0])) {
$request_url_handler[0] = "@";
$this->id_found = 2;
}
for($x=0; $x<count($request_url_handler); $x++) {
if(empty($request_url_handler[$x])) {
$request_url_handler[$x] = "@";
}
if(eregi(trim($request_url_handler[$x]),$this->sys_request_url) && $this->id_found == 0) {
$this->set_config($db,$db->f("cid"));
$this->id_found = 1;
}
}
if($this->id_found == 1) {
return($this->sys_config_vars);
}
}
$this->set_config($db,"");
return($this->sys_config_vars);
}
任何幫助將不勝感激。 我只發現eregi函數已被棄用,因為我將XAMPP更新為1.7.3。
嘗試更換:
if(eregi(trim($request_url_handler[$x]),$this->sys_request_url) && $this->id_found == 0) {
有:
$request_url_handler[$x] = trim($request_url_handler[$x]);
if( preg_match("/$request_url_handler[$x]/i",$this->sys_request_url) && $this->id_found == 0) {
eregi
已被棄用,我們需要使用帶有i
選項的preg_match
作為替代品。
一般來說
eregi($regex,$input)
可以替換為:
preg_match("/$regex/i",$input)
編輯:
它假設上面的$regex
不包含任何/
用作分隔符 。 如果確實如此,則必須使用不同的分隔符,如@
或#
或|
不包含在$regex
preg_match("#$regex#i",$input)
或者,您也可以轉義$regex
所有出現的分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.