最近想调用一个发送邮件的函数,于是在网上下载了一个smtp_mail.php的函数,函数编写的php版本比较低,都用的是ereg,ereg_replace.但是我现在的PHP版本比较高,因此需要用preg_match代替ereg,preg_replace代替ereg_replace,代替之后出现warning,由于之前也没用怎么学过正则表达式,麻烦大牛帮忙修改一下。修改之前:$body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
修改之后:$body = preg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
Warning: preg_replace(): Unknown modifier '(' in ......$response = str_replace("\r\n", "", fgets($this->sock, 512));
修改之前:if (!ereg("^[23]", $response))
修改之后:if (!preg_match("^[23]", $response))
Warning: preg_match(): No ending delimiter '^' found in ......$comment = "\([^()]*\)";
修改之前:ereg($comment, $address)
修改之后:preg_match($comment, $address)
Warning: preg_match(): Delimiter must not be alphanumeric or backslash in......修改之前:$address = ereg_replace("([ \t\r\n])+", "", $address);
修改之后:$address = preg_replace("([ \t\r\n])+", "", $address);
Warning: preg_replace(): Unknown modifier '+' in ......修改之前:$address = ereg_replace("^.*<(.+)>.*$", "\1", $address);
修改之后:$address = preg_replace("^.*<(.+)>.*$", "\1", $address);
Warning: preg_replace(): No ending delimiter '^' found in ......
修改之后:$body = preg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
Warning: preg_replace(): Unknown modifier '(' in ......$response = str_replace("\r\n", "", fgets($this->sock, 512));
修改之前:if (!ereg("^[23]", $response))
修改之后:if (!preg_match("^[23]", $response))
Warning: preg_match(): No ending delimiter '^' found in ......$comment = "\([^()]*\)";
修改之前:ereg($comment, $address)
修改之后:preg_match($comment, $address)
Warning: preg_match(): Delimiter must not be alphanumeric or backslash in......修改之前:$address = ereg_replace("([ \t\r\n])+", "", $address);
修改之后:$address = preg_replace("([ \t\r\n])+", "", $address);
Warning: preg_replace(): Unknown modifier '+' in ......修改之前:$address = ereg_replace("^.*<(.+)>.*$", "\1", $address);
修改之后:$address = preg_replace("^.*<(.+)>.*$", "\1", $address);
Warning: preg_replace(): No ending delimiter '^' found in ......
解决方案 »
- php+myspl+apache+phpMyAdmin在XP环境下配置
- 请问下,怎么用PHP把变量传递给CSS样式表中的url
- 帮忙看一下这个网站用什么写的
- 我已经建立两张表了,不过不知道怎么关联ID字段
- PHP邮件函数mb_send_mail(),错误警告
- 求助,php生成带图片的word问题
- 我在LINUX下已经安装了PHP,现在发现不支持GD库,是不是装好GD库后要再重新安装PHP?
- Linux和PHP兼容性问题,在线等,急!顶者有份!
- 之前的问题:用什么方式来实现指定的电脑才可以登录,mac地址限制/ip地址限制/证书/控件等等什么方式可以?
- 一个简单的求值问题
- php从文件中读取出的用户名不能用于连接数据库
- 菜鸟求救,重装wamp后出现错误:configured -- resuming normal operations
修改之后:$body = preg_replace("/(^|(\r\n))(\.)/", "\1.\3", $body);
其他类同
嗯,已经加了定界符,不报错了,但是邮件发不出去了。修改之前邮件时可以发送出去的,会提示发送成功,但是修改之后,虽然没有帖子中的报错信息,但是提交之后页面就空白了,卡死了,没有提示发送成功,也收不到邮件。应该还是帖子中的这几行代码有问题,麻烦再帮忙看看这几句,是不是和修改之前的意思不一样了。实在不懂正则语句,学习起来有点费时间,但是又急着用,多谢了!!!修改之前:$body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
修改之后:$body = preg_replace("/(^|(\r\n))(\.)/", "\1.\3", $body); //加了定界符$response = str_replace("\r\n", "", fgets($this->sock, 512));
修改之前:if (!ereg("^[23]", $response))
修改之后:if (!preg_match("/^[23]/", $response)) //加了定界符$comment = "/\([^()]*\)/"; //加了定界符
修改之前:ereg($comment, $address)
修改之后:preg_match($comment, $address)修改之前:$address = ereg_replace("([ \t\r\n])+", "", $address);
修改之后:$address = preg_replace("/([ \t\r\n])+/", "", $address); //加了定界符修改之前:$address = ereg_replace("^.*<(.+)>.*$", "\1", $address);
修改之后:$address = preg_replace("/^.*<(.+)>.*$/", "\1", $address); //加了定界符
$body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
$body = preg_replace("/(^|(\r\n))(\.)/", "\\1.\\3", $body); // 加了定界符,\1.\3修改成了\\1.\\3$domain = ereg_replace("^.+@([^@]+)$", "\1", $address);
$domain = preg_replace("/^.+@([^@]+)$/", "\\1", $address); // 加了定界符,\1修改成了\\1$response = str_replace("\r\n", "", fgets($this->sock, 512));
$this->smtp_debug($response."\n");
if (!ereg("^[23]", $response)) //修改为 if (!preg_match("/^[23]/", $response)) ,加了定界符
{
fputs($this->sock, "QUIT\r\n");
fgets($this->sock, 512);
$this->log_write("Error: Remote host returned \"".$response."\"\n");
return FALSE;
} $comment = "\([^()]*\)"; //修改为$comment = "/ \([^()]*\) /"; 加了定界符
while (preg_match($comment, $address))
{
$address = ereg_replace($comment, "", $address); 修改为:$address = preg_replace($comment, "", $address); }$address = ereg_replace("([ \t\r\n])+", "", $address);
$address = preg_replace("/([ \t\r\n])+/", "", $address); // 加了定界符$address = ereg_replace("^.*<(.+)>.*$", "\1", $address);
$address = preg_replace("/^.*<(.+)>.*$/", "\\1", $address); // 加了定界符且\1修改成了\\1