PHP是一種跨平臺的腳本語言,非常流行。其中,ereg函數在PHP 7被棄用,它的替代函數是preg_match。但是,一些舊的代碼還在使用eregi函數。在本文中,我們將討論PHP 7的eregi函數及其用法。
eregi函數用于執行正則表達式的模式匹配,不區分大小寫。函數的語法為:
```
eregi($pattern, $string, $matches);
```
其中,$pattern是正則表達式,$string是要匹配的字符串,$matches是一個數組,存儲匹配后的結果。
下面是一個例子,我們想要匹配一個字符串是否是一個電子郵件地址:
```
$email = "user@example.com";
if (eregi("^[a-z0-9_.-]+@[a-z0-9]+.[a-z]{2,4}$", $email)) {
echo "這是一個有效的電子郵件地址。";
} else {
echo "這不是一個有效的電子郵件地址。";
}
```
在PHP 7中,eregi函數已經被棄用。相反,我們應該使用preg_match函數作為替代。
preg_match函數的語法為:
```
preg_match($pattern, $string, $matches, $flags, $offset);
```
其中,$pattern和$matches與eregi函數相同,$string是待匹配的字符串,$flags是一個可選參數,用來指定匹配模式,$offset是一個可選參數,指定在字符串中的開始搜索位置。
下面是上面的例子在PHP 7中使用preg_match函數的代碼:
```
$email = "user@example.com";
if (preg_match("/^[a-z0-9_.-]+@[a-z0-9]+.[a-z]{2,4}$/i", $email)) {
echo "這是一個有效的電子郵件地址。";
} else {
echo "這不是一個有效的電子郵件地址。";
}
```
注意,我們在正則表達式的末尾添加了一個“i”標志,這表示不區分大小寫。與eregi函數不同的是,我們使用正斜線“/”將模式括起來,這是preg_match函數的要求。
下面是另一個例子,我們想要檢查一個字符串是否包含“php”或“PHP”:
```
$text = "This is a PHP lesson.";
if (eregi("php", $text)) {
echo "該字符串包含PHP。";
} else {
echo "該字符串不包含PHP。";
}
```
在PHP 7中,我們需要將代碼改為:
```
$text = "This is a PHP lesson.";
if (preg_match("/php/i", $text)) {
echo "該字符串包含PHP。";
} else {
echo "該字符串不包含PHP。";
}
```
我們使用了正斜線將模式括起來,并在末尾添加了一個“i”標志,表示不區分大小寫。
在本文中,我們了解了PHP 7的eregi函數及其在PHP 7中應該如何使用。雖然eregi函數已經被棄用,但我們仍然可以用preg_match函數來完成相同的任務。記住,在新代碼中使用preg_match函數,以確保與PHP 7兼容。
上一篇php 7 eol