PDA

View Full Version : نمایش علامت سوال به جای فارسی



behzadamin12
جمعه 23 مرداد 1394, 10:58 صبح
با سلام دوستان
کمک فوری میخام
میخام یک فایل اکسل csv رو تو بانک ایمپورت کنم
ولی وقتی این فایل رو میخونم فارسی رو به صورت علامت سوال نمایش میده
تابعی چیزی برای درست کردنش معرفی کنید
با تشکر
اینم تصویرشه
134230

behzadamin12
جمعه 23 مرداد 1394, 11:09 صبح
سوال که واضحه دیگه؟

behzadamin12
جمعه 23 مرداد 1394, 11:26 صبح
یه تابع میخام برای تبدیل این علامتهای سوال به کاراکترهای فارسی

behzadamin12
جمعه 23 مرداد 1394, 11:50 صبح
update!!!!!!!!!!

behzadamin12
جمعه 23 مرداد 1394, 19:29 عصر
یعنی کسی نمیتونه کمک کنه؟

behzadamin12
جمعه 23 مرداد 1394, 19:37 عصر
خواهش میکنم
یکی کمک کنه خیلی ضروریه

habibvafapour
جمعه 23 مرداد 1394, 20:12 عصر
('mysql-query('SET NAMES UTF

behzadamin12
جمعه 23 مرداد 1394, 22:29 عصر
('mysql-query('SET NAMES UTF

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

pbm_soy
شنبه 24 مرداد 1394, 01:52 صبح
خود فایل csv شما بصورت یونیکد نیست احتمالا فایل را در یک ویرایشگر متنی مانند نوت پد یا نوت پد پلاس پلاس و یا دریم ویور و غیره باز کنید و فایل بصورت یونیکد save as کنید
در ضمن مورد دیگر که بلاید بگم هم محتوای فایل باید یونیکد باششد و هم وقتی میخوانید باید بصورت یونیکد بخوانید و هم وقتی جایی ذخیره و یا نمایش میدهید باید بصورت یونیکد ذخیره و یا نمایش دهید
مثلا برای دیتابیس ذخیره کردن دوستمون در پست بالا گفتن ویا برای نمایش دادن باید کاراکتر ست صفحه و فونت یونیکد ست کنید بلاخره تمام بخشها باید بصورت یونیکد باشند تا مشکلی پیش نیاید

pbm_soy
شنبه 24 مرداد 1394, 01:58 صبح
یک‌مورد دیگر یادم رفت بگم اگر نیاز دارید بروی رشته های یونیکدی پردازش انجام بدید یعنی با استفاده از توابع رشته ای میخواهید بروی آنها کار کنید با توابع معمولی نمیتوانید و باید mbstring را در php فعال کنید و از توابع رشته ای mb اسستفاده کنید

درضمن پس از اینکه فایل را خواندید حالا فرقی نمیکنه با کدوم تابع باشد fgets , fread , file_content باید خروجی آنرا یونیکد کنید با تابع utf8_encode انجام دهید

Im.Webmaster
شنبه 24 مرداد 1394, 07:45 صبح
از PHPExcel (https://phpexcel.codeplex.com/) استفاده کنید .

ایمپورت فایل csv به class



$inputFileType = 'CSV';

$inputFileName = 'testFile.csv';

$objReader = PHPExcel_IOFactory::createReader($inputFileType);

$objPHPExcel = $objReader->load($inputFileName);



خواندن :



$worksheet = $objPHPExcel->getActiveSheet();

foreach ($worksheet->getRowIterator() as $row) {

echo 'Row number: ' . $row->getRowIndex() . "\r\n";


$cellIterator = $row->getCellIterator();

$cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set

foreach ($cellIterator as $cell) {

if (!is_null($cell)) {

echo 'Cell: ' . $cell->getCoordinate() . ' - ' . $cell->getValue() . "\r\n";

}

}

}

behzadamin12
شنبه 24 مرداد 1394, 16:56 عصر
یک‌مورد دیگر یادم رفت بگم اگر نیاز دارید بروی رشته های یونیکدی پردازش انجام بدید یعنی با استفاده از توابع رشته ای میخواهید بروی آنها کار کنید با توابع معمولی نمیتوانید و باید mbstring را در php فعال کنید و از توابع رشته ای mb اسستفاده کنید

درضمن پس از اینکه فایل را خواندید حالا فرقی نمیکنه با کدوم تابع باشد fgets , fread , file_content باید خروجی آنرا یونیکد کنید با تابع utf8_encode انجام دهید

دوست عزیز نحوه فعال کردن mbstring چه جوریه ؟
من فایل به صورت unicode utf8 ذخیره کردم
میبینید که باز به صورت شکلی عجیب نمایش میده
یک تابع برای تبدیل معرفی کنید که به فارسی تبدیلش کنم
با تشکر

behzadamin12
شنبه 24 مرداد 1394, 17:18 عصر
از PHPExcel (https://phpexcel.codeplex.com/) استفاده کنید .

ایمپورت فایل csv به class



$inputFileType = 'CSV';

$inputFileName = 'testFile.csv';

$objReader = PHPExcel_IOFactory::createReader($inputFileType);

$objPHPExcel = $objReader->load($inputFileName);



خواندن :



$worksheet = $objPHPExcel->getActiveSheet();

foreach ($worksheet->getRowIterator() as $row) {

echo 'Row number: ' . $row->getRowIndex() . "\r\n";


$cellIterator = $row->getCellIterator();

$cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set

foreach ($cellIterator as $cell) {

if (!is_null($cell)) {

echo 'Cell: ' . $cell->getCoordinate() . ' - ' . $cell->getValue() . "\r\n";

}

}

}


کسی میتونه یه مثال کامل از ایمپورت فایل اکسل به بانک mysql رو ارائه بده؟

behzadamin12
شنبه 24 مرداد 1394, 17:22 عصر
دوست عزیز نحوه فعال کردن mbstring چه جوریه ؟
من فایل به صورت unicode utf8 ذخیره کردم
میبینید که باز به صورت شکلی عجیب نمایش میده
یک تابع برای تبدیل معرفی کنید که به فارسی تبدیلش کنم
با تشکر

این utf8 که گفته بودید رو انجام دادم ولی باز کاراکترهارو به شکل عجیب نشون میده
به این شکل
134289
مشکل کار چیه؟
اینم کدی که استفاده میکنم


<?php
include_once '../object/main.php';
$connect=new connect;
mb_internal_encoding('utf-8');
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وارد کردن اطلاعات از اکسل</title>
</head>


<body>
<?php
if(isset($_POST['submit']))
{
function en($n)
{
return utf8_encode($n);
}
$filename=$_FILES['csv']['tmp_name'];
$type=$_FILES['csv']['type'];
if($type=='application/vnd.ms-excel')
{
$fop=fopen($filename,"r");
while(($file=fgetcsv($fop,1000,","))!==false)
{
echo en($file[0]).'<br>';
/*$sql_excel="INSERT INTO `m_user_driver` (`taxi_number`, `name`, `family`, `user`, `pass`, `meli_code`, `sh_sh`, `pic`, `birthday`, `father_name`, `tell`, `mobile`, `province`, `city`, `address`, `insurance`, `id_insurance`, `kind_machine`, `birthday_machine`, `vin`, `id_shasi`, `number_motor`, `kind_fuel`, `pelak`, `pan`, `helper`, `id_helper`, `kind`, `farvardin`, `ordibehesht`, `khordad`, `tir`, `mordad`, `shahrivar`, `mehr`, `aban`, `azar`, `dey`, `bahman`, `esfand`, `year`) VALUES ('".$file[0]."', '".$file[1]."', '".$file[2]."', '".$file[6]."', '".$file[6]."', '".$file[6]."', '".$file[3]."', 'pic', '".$file[4]."', '".$file[5]."', 'tell', '".$file[21]."', 'آذربایجان غربی', 'شاهین دژ', '".$file[20]."', '".$file[15]."', '".$file[16]."', '".$file[7]."', '".$file[8]."', '".$file[10]."', '".$file[11]."', '".$file[12]."',
'".$file[19]."', 'pelak', '".$file[13]."', '".$file[17]."', 'id_helper', 'taxi', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1394');";

$result=$connect->query($sql_excel);*/


}
/*if($result)
{
echo'درج اطلاعات با موفقیت انجام شد';
}
else
{
echo 'noooooooo';
}
fclose($fop);*/

}
else
{
echo'فایل انتخاب شده معتبر نمیباشد';
}


}


?>
<form action="excel.php" method="post" name="frmcsv" enctype="multipart/form-data">
<p><input type="file" name="csv"/></p>
<p><input type="submit" name="submit" value="ارسال"/></p>
</form>
</body>
</html>

behzadamin12
شنبه 24 مرداد 1394, 18:18 عصر
دوستان عزیز میشه یک مثال کامل ارائه بدید درخصوص این مطلب

behzadamin12
یک شنبه 25 مرداد 1394, 15:57 عصر
کسی کمک درست وحسابی نمیتونه بکنه؟

pejman_view
یک شنبه 25 مرداد 1394, 17:37 عصر
سلام،
از این تابع استفاده کن، ورودی ansi رو به utf-8 تبدیل می کنه.

$csv = iconv("Windows-1252","UTF-8", $csv);

موفق و پیروز باشید.

maryam9393
شنبه 25 اردیبهشت 1395, 19:46 عصر
سلام من برای ایمپورت کردن فایل csv خودم از کدهای زیر استفاده میکنم و مشکلیهم ندارم امیدوارم کمکتون کنه
جداکننده ی من در فایل csv کاما هست
و اینکه با اجرای این کد خروجی نمایش داده میشه ولی شما میتونین با دستور insert توی دیتابیس هم ذخیره کنین


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<form name="import" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
<?php
if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$r=0;
$fc = iconv('windows-1256', 'utf-8', file_get_contents($file));
file_put_contents($file, $fc);
$handle = fopen($file, "r");
while ( ($data = fgetcsv ($handle, 1000, ",")) !== FALSE ) {
$num = count ($data);

for($i=0;$i<$num;$i++){
echo $data[$i];

}

}
echo 'تعداد سطرها : '.$r;
}