PDA

View Full Version : مشکل utf-8 در کد و ؟؟؟؟؟؟؟؟؟؟ شدن کلمه ها (حل شد)



beh9am
چهارشنبه 09 مهر 1393, 20:46 عصر
سلام و خسته نباشید

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

کد من اینه:





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






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

MMSHFE
چهارشنبه 09 مهر 1393, 23:11 عصر
تاپیک پرسشهای تکراری رو مطالعه کنید:
رفع مشکل نمایش/ذخیره بهم ریخته حروف فارسی در Database (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1576424&viewfull=1#post1576424)

beh9am
چهارشنبه 09 مهر 1393, 23:19 عصر
تاپیک پرسشهای تکراری رو مطالعه کنید:
رفع مشکل نمایش/ذخیره بهم ریخته حروف فارسی در Database (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1576424&viewfull=1#post1576424)

قبل از تاپیک زدن از جستجوی گوگل به اون تاپیک رفتم که گفتند باید یک کد بزاری

من میزارم اما کار نمیکنه

MMSHFE
چهارشنبه 09 مهر 1393, 23:22 عصر
چه کدی؟ شما بعد از دستور mysql_select_db این کدها رو بنویسید:

mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
و حالا فایلتون رو با ++Notepad با کدگذاری UTF-8 without BOM ذخیره کنید ببینید درست میشه؟

beh9am
چهارشنبه 09 مهر 1393, 23:52 عصر
یک دنیا تشکر درست شد