如何根据日期/时间执行PHP操作?

时间:2015-11-16 13:11:14

标签: php email

我想让我的服务器向我发送e-mails生日提醒,该生日提醒基于我的网络托管服务提供商服务器上的数据库中的生日日历。我知道如何从e-mails发送PHP,但仅作为在客户端点击按钮后的操作。这也是我能找到的行动的唯一方法。

如何在没有用户互动的情况下让我的服务器在特定e-mail上向我发送date/time个?

修改
我不认为我的问题是重复的。假定的重复链接是指关于cron的问题,答案是关于语法,但它没有解释cron是如何工作的,或者我如何将它用于我的问题。

3 个答案:

答案 0 :(得分:0)

详细说明Apb给出的评论;

  1. 使用内容(脚本部分按钮)
  2. 创建您的php文件
  3. 使用cron for linux os或者如果您windows执行了您的PHP脚本
  4. 另一个选项是setcronjob.com由Santosh Achari在enter link description here问题

    上回答

答案 1 :(得分:0)

您可以在命令行上编写用于执行的php脚本。要从命令行运行php脚本,只需使用php命令:

php myscript.php

在此示例中,如果myscript.php具有发送电子邮件的所有逻辑,那么您只需设置一个cron作业,以便每天或每小时自动执行该文件(但通常您希望它执行)。然后你需要做的就是在PHP脚本中编写逻辑来检查它的" time"发送其中一封电子邮件。

为php脚本设置cron作业的answer on this post has a great explanation

答案 2 :(得分:0)

正如其他人所说的cronjobs是实现这一目标的好方法。

例如(非常简陋) script.php

include '../connect.php';   
$birthday_list =[];
$today = date("m.d.y"); 


try {           
    $sql = "SELECT `Birthday`, `Name`, `Surname`,  FROM `Friends` WHERE Friends.Birthday = '$today'";               
    foreach ($conn->query($sql) as $row) {          
        $temp = [$row['Birthday'],$row['Name'],$row['Surname']];
        $birthday_list[] =  $temp;                  
                    }    
            }
    catch(PDOException $e)
        {
        echo "Connection failed: " . $e->getMessage();
    }

foreach ($birthday_list as $el){
    $name = $el[1];
    $surname = $el[2];
    $message = 'Todays is'.$name.' '.$surname.' birthday'; 
    mail('me@example.com', 'My Subject', $message);
}

然后您可以将此脚本作为cronjob运行,某些托管(例如godaddy)允许您从cpanel设置crons,否则您必须从服务器shell设置crons。