- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
WordPress 中有多个站点。 backup buddy plugin 使用配置好的 amazon S3 bucket 我们需要每周发送邮件 在所有站点备份信息中是否收到最近的备份。
最佳答案
终于找到答案了
首先安装 AWS S3 包引用这个'https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-examples-creating-buckets.html '然后下面提到的代码创建 index.php 文件然后在浏览器中调用工作正常
当你想自动运行 index.php 文件时使用 cron
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
$bucketData = '{
"bucket":{
"1":{
"name":"bucketname-1",
"backup":"backups/"
},
"2":{
"name":"bucketname-2",
"backup":"backups/"
}
},
"uncheck":[
"menardsimages"
]
}';
//multile-bucket-having-mentioned-except'uncheck'
$bucketData = json_decode($bucketData);
/**
* List your Amazon S3 buckets.
*
* This code expects that you have AWS credentials set up per:
* https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
*/
$key = 'xxxxxxxxx';
$secret = 'yyyyyyyy';
//Create a S3Client
$s3Client = new S3Client([
'region' => 'us-west-2',
'version' => 'latest',
'credentials' => [
'key' => $key,
'secret' => $secret,
]
]);
function recent_backup_verify($objects){
$tendays_bf_today = date('Y-m-d',(strtotime ( '-7 day' , strtotime ( date("Y-m-d")) ) ));
foreach ($objects as $object) {
$created_date = $object['LastModified']->format('Y-m-d');
if($created_date > $tendays_bf_today){
return $created_date;
}
}
return false;
}
function searchForName($name, $array) {
foreach ($array as $key => $val) {
if ($val->name === $name) {
return $val->backup;
}
}
return null;
}
$buckets = $s3Client->listBuckets();
//print_r($created_bucketlist);
$backup_array = array();
foreach ($buckets['Buckets'] as $bucket) {
//files-listing-insideofthe-bucket
if(!in_array($bucket['Name'], $bucketData->uncheck)){
$objects = $s3Client->getIterator('ListObjects', array(
"Bucket" => $bucket['Name'],
"Prefix" => searchForName($bucket['Name'], $bucketData->bucket) //must have the trailing forward slash "/"
));
$getbackup_result = recent_backup_verify($objects);
if($getbackup_result != false){
$backup_array[$bucket['Name']]['status'] = 'Taken';
$backup_array[$bucket['Name']]['date'] = $getbackup_result;
}else{
$backup_array[$bucket['Name']]['status'] = 'Not Taken';
$backup_array[$bucket['Name']]['date'] = '-';
}
}
}
sendgrid_form($backup_array);
function sendgrid_form($backup_array){
$msg = '<table border="1" cellpadding="5" cellspacing="0" width="500px" style="border-color:#ddd;">';
$msg .= '<tr bgcolor="#555" style="color:#fff;">';
$msg .= '<th>S.No</th><th>Site Name</th><th width="100px">Backup Date</th><th width="100px">Backup Status</th>';
$msg .= '</tr>';
$s_no = 1;
foreach($backup_array as $site=>$val){
if($val['status'] == 'Taken'){$color = 'green';}else{$color='red';}
$msg .= '<tr>';
$msg .= '<td align="center">'.$s_no.'</td><td>'.$site.'</td><td align="center" >'.$val['date'].'</td><td align="center" style="color:'.$color.'">'.$val['status'].'</td>';
$msg .= '</tr>';
$s_no++;
}
$msg .= '</table>';
$message_html = "<hr width='20%' align='left'>
<img src='logo.png' width='100px'>
<hr width='20%' align='left'>
<h3>Hi Team,</h3>
<p>This is the list that has the every week backup status of our websites/applications that received in our AWS S3. If the 'Backup Status' is 'Not Taken' please check with the script/plugin immediately.</p>
".$msg."
<p>Thank You</p>";
$to = 'reciever@example.com';
$json_string = array(
'to' => array($to),
'category' => 's3_backup'
);
$params = array(
'api_user' => 'xxxxx',
'api_key' => 'yyyy',
'x-smtpapi' => json_encode($json_string),
'to' => $to,
'subject' => 'Backup S3 Report!',
'html' => $message_html,
'from' => 'info@example.com',
);
$request = 'https://api.sendgrid.com/api/mail.send.json';
$session = curl_init($request);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
curl_close($session);
$temp = json_decode($response);
if($temp->message == 'success'){
$data['success'] = "Email Send Successfully!";
}else{
$data['success'] = "Email Send Failed!";
}
echo json_encode($data);
}
关于php - 如何在 WordPress 备份后每周发送邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60126836/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!