beh9am

مشکل utf-8 در کد

6 پست در این موضوع قرار دارد

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

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

کد من اینه:


<?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;
}
?>

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

0

به اشتراک گذاری این پست


لینک به پست

سلام

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

3

به اشتراک گذاری این پست


لینک به پست

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

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

[sharedmedia=tutorials:tutorials:310]

4

به اشتراک گذاری این پست


لینک به پست

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

4

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

سلام

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

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

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

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

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

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

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

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

ویرایش شده در توسط beh9am
0

به اشتراک گذاری این پست


لینک به پست

بعد از اتصال به بانک این کد رو استفاده کنید :


mysql_query('SET NAMES \'utf8\'');

3

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری