دوستان وقتی فایل مربوطه رو اجرا میکنیم فایل بک اپ دیتابیس به راحتی ایمیل میشه و به صورت صحیحکد:<?php function backup_db($host, $user, $pass, $name, $tables = '*') { date_default_timezone_set('Asia/Tehran'); $return = ''; mysql_connect($host,$user,$pass) or die('Connection error'); mysql_select_db($name) or die('Database error'); mysql_query('SET NAMES \'utf8\''); mysql_set_charset('utf8'); if($tables == '*') { $tables = array(); $result = mysql_query('SHOW TABLES'); while($row = mysql_fetch_row($result)) { $tables[] = $row[0]; } mysql_free_result($result); } else { $tables = is_array($tables) ? $tables : explode(',', $tables); } foreach($tables as $table) { $result = mysql_query('SELECT * FROM `'.$table.'`'); $num_fields = mysql_num_fields($result); $return .= 'DROP TABLE IF EXISTS `'.$table.'`;'.PHP_EOL.PHP_EOL; $row = mysql_fetch_row(mysql_query('SHOW CREATE TABLE `'.$table.'`')); $return .= $row[1].';'.PHP_EOL.PHP_EOL; for ($i = 0; $i < $num_fields; $i++) { while($row = mysql_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j = 0; $j < $num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace('\n', '\\n', $row[$j]); if (isset($row[$j])) { $return .= '\''.$row[$j].'\''; } else { $return .= '\'\''; } if ($j < ($num_fields - 1)) { $return .= ','; } } $return .= ');'.PHP_EOL; } } $return .= PHP_EOL.PHP_EOL.PHP_EOL; } file_put_contents('db_backup.sql',$return); } backup_db('localhost', '*****', '*******', '******'); function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $subject, $message) { $file = $path.$filename; $file_size = filesize($file); $handle = fopen($file, "r"); $content = fread($handle, $file_size); fclose($handle); $content = chunk_split(base64_encode($content)); $uid = md5(uniqid(time())); $name = basename($file); $header = "From: ".$from_name." <".$from_mail.">\r\n"; $header .= "Reply-To: ".$from_mail."\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; $header .= "This is a multi-part message in MIME format.\r\n"; $header .= "--".$uid."\r\n"; $header .= "Content-type:text/plain; charset=iso-8859-1\r\n"; $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $header .= $message."\r\n\r\n"; $header .= "--".$uid."\r\n"; $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here $header .= "Content-Transfer-Encoding: base64\r\n"; $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; $header .= $content."\r\n\r\n"; $header .= "--".$uid."--"; if (mail($mailto, $subject, "", $header)) { echo "mail send ... OK"; // or use booleans here } else { echo "mail send ... ERROR!"; } } $my_file = "db_backup.sql"; $my_path = $_SERVER['DOCUMENT_ROOT']."/"; $my_name = "raj"; $my_mail = "info@domain.com"; $my_subject = "Email Subject "; $my_message = "Refer the attached file."; $to_email="civilparto@yahoo.com"; mail_attachment($my_file, $my_path, $to_email, $my_mail, $my_name, $my_subject, $my_message); unlink('db_backup.sql'); ?>
اما وقتی تو کرون جاب اجراش میکنیم فایل رو خالی میفرسته .
اگر دوستان میتونن کمک کنن ممنون میشم