不用正则 在一个文本文件中搜索邮箱地址 php
时间: 2023-09-03 10:03:39 浏览: 46
在一个文本文件中搜索邮箱地址,并不一定需要使用正则表达式,可以借助字符串的处理函数来实现。
首先,需要将文本文件逐行读取并存储到一个字符串数组中。然后,遍历每一行,使用strpos函数查找是否包含"@"符号,以判断是否可能是邮箱地址的起始位置。如果存在"@"符号,再通过strpos函数查找是否包含"."符号,以确定是否是合法的邮箱地址。
以下是示例代码:
```php
<?php
// 读取文本文件并存储到字符串数组中
$lines = file('text.txt');
// 定义用于存储邮箱地址的数组
$emails = array();
// 遍历每一行
foreach ($lines as $line) {
// 查找是否包含"@"符号
$pos = strpos($line, "@");
// 如果存在"@"
if ($pos !== false) {
// 查找是否包含"."符号
$dotPos = strpos($line, ".", $pos);
// 如果存在"."且"."在"@"之后
if ($dotPos !== false && $dotPos > $pos) {
// 提取邮箱地址,并存入数组
$email = substr($line, $pos - strpos(strrev($line), " ") + 1);
$emails[] = $email;
}
}
}
// 打印搜索到的邮箱地址
foreach ($emails as $email) {
echo $email . "<br>";
}
?>
```
以上代码可以实现在一个文本文件中搜索邮箱地址,通过判断"@"和"."的位置来确定是否是合法的邮箱地址。虽然没有使用正则表达式,但在一些复杂的场景下,正则表达式仍然是更为高效和灵活的解决方案。