رفتن به مطلب

مشکل utf-8 در کد


پست های پیشنهاد شده

سلام و خسته نباشید

من با استفاده از یک کد از سایتم بک آپ میگیرم اما مشکل اینه که کلمه های فارسی دیتابیس به صورت ؟؟؟؟؟؟؟ ذخیره میشن

کد من اینه:


<?php
//script for make full backup in host
//Devaloped By Pr0grammer
//Released at 30/1/2013 2:38AM
//global setting
$host='localhost';
$user='test_test';
$pass='55555';
$dbname='majale';
//***********************************************
$file=explode("/",curPageURL());
$file=$file[0].'/'.$file[1].'/'.$file[2].'/file_backup.zip';
backup_tables($host,$user,$pass,$dbname);
zip_make();
echo "<center><h3>Backup Created Successfully..!</h3><br/>";
echo "<a href=$file>Download Now</a></center>";
//***********************************************
function backup_tables($host,$user,$pass,$name,$tables = '*')
{
$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);

//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}

//cycle through
foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);

$return.= 'DROP TABLE IF EXISTS '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";

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] = ereg_replace("\n","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}

//save file
$handle = fopen('db-backup.sql','w+');
fwrite($handle,$return);
fclose($handle);
}
//*********************************************
function zip_make()
{
$zip = new ZipArchive();
//back up file name
$zip->open('file_backup.zip', ZipArchive::CREATE);
//path for zip
$dirName = realpath(dirname(__FILE__));
if (!is_dir($dirName)) {
throw new Exception('Directory ' . $dirName . ' does not exist');
}
$dirName = realpath($dirName);
if (substr($dirName, -1) != '/') {
$dirName.= '/';
}
$dirStack = array($dirName);
$cutFrom = strrpos(substr($dirName, 0, -1), '/')+1;
while (!empty($dirStack)) {
$currentDir = array_pop($dirStack);
$filesToAdd = array();
$dir = dir($currentDir);
while (false !== ($node = $dir->read())) {
if (($node == '..') || ($node == '.')) {
continue;
}
if (is_dir($currentDir . $node)) {
array_push($dirStack, $currentDir . $node . '/');
}
if (is_file($currentDir . $node)) {
$filesToAdd[] = $node;
}
}
$localDir = substr($currentDir, $cutFrom);
$zip->addEmptyDir($localDir);
foreach ($filesToAdd as $file) {
$zip->addFile($currentDir . $file, $localDir . $file);
}
}
$zip->close();
}
//****************************************
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>

ممنون میشم بگید مشکل کد کجاست

لینک به ارسال

باید Collation دیتابیسی که روش بک آپ رو ذخیره می کنید utf8_persian_ci یا utf8_general_ci باشه

در ضمن برای بک آپ روی لوکال این آموزش رو هم بخونید

[sharedmedia=tutorials:tutorials:310]

  • امتیاز 4
لینک به ارسال

سلام

زمان فراخوانی هم به صورت ???? لود میشن؟

وقتی ؟؟؟ ذخیره میشن موقع فراخوانی هم همین هستند

باید Collation دیتابیسی که روش بک آپ رو ذخیره می کنید utf8_persian_ci یا utf8_general_ci باشه

در ضمن برای بک آپ روی لوکال این آموزش رو هم بخونید

شما وقتی دسترسی لوکل داری چرا از هاست اقدام نمیکنی ؟

این کد خیلی خوبه چون حجم هاست من به چند گیگ میرسه و حجم دیتابیس سنگینه ولی با این کد به راحتی در 1 دقیقه میشه فول بکآپ گرفت و انتقال میدم به هاست دانلود

همه چی خوبه ولی وقتی فایل دیتابیس به اسم db-backup.sql ذخیره میشه تو هاست کلمه های فارسی به صورت ؟؟؟؟؟ ذخیره میشن

اگر این مشکل را در کد برطرف کنید ممنون میشم

ویرایش شده توسط beh9am
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...