PDA

View Full Version : سوال: کپی کردن فایل با نام فارسی



h.alizadeh
چهارشنبه 05 آبان 1389, 00:15 صبح
باسلام،

چطوری می شود فایلهای با نام فارسی را در مسیر خاصی کپی کرد؟!
بطور مثال:

copy("upload/هما.txt","a/مینا.txt");

کار نمی کند و خطا می دهد چون هما(که فایل مبدأ می باشد) فارسی است.

binyaft
چهارشنبه 05 آبان 1389, 18:58 عصر
به جای استفاده از تابع کپی یک تابع بنویسید که فایل مورد نظر رو باز کند (file_get_contents)، بعد محتویات فایل را درون فایل مورد نظر بریزد

موفق باشید

mohmadd
چهارشنبه 05 آبان 1389, 20:11 عصر
encoding فایل رو به utf8 تغییر بدید .
موفق باشید.

h.alizadeh
چهارشنبه 05 آبان 1389, 20:34 عصر
خب تعداد فایلها نامشخص و زیاد و حجیم هست ...و پسوندهاشونم متفاوت

h.alizadeh
چهارشنبه 05 آبان 1389, 20:37 عصر
encoding فایل رو به utf8 تغییر بدید .
چطوری؟ اگر میشه دستورشو بگید.

binyaft
چهارشنبه 05 آبان 1389, 21:09 عصر
خب تعداد فایلها نامشخص و زیاد و حجیم هست ...و پسوندهاشونم متفاوت
فایلهای پوشه مورد نظر رو به تابع بدید تا کارشو انجام بده ( با کد میشه فایلهای یک پوشه رو خوند )

encoding فایل رو به utf8 تغییر بدید .
انکودینگ ویرایشگرتون رو به utf-8 تغییر بدید

funpatogh
چهارشنبه 05 آبان 1389, 21:31 عصر
بچه ها من انجام دادم جواب نمیده یعنی فایل ایجاد میشه اما با نام نا مشخص


<html>
<head>
<meta http-equiv="content-type" content="text/html ; charset=utf-8">
</head>
<body>
<?php
$file=file_get_contents("هما.txt");
file_put_contents("مینا.txt",$file);
?>
</body>
</html>

h.alizadeh
چهارشنبه 05 آبان 1389, 21:43 عصر
منظورتون

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
هست؟
خب یونی کد هست/

mohmadd
پنج شنبه 06 آبان 1389, 04:36 صبح
بچه ها من انجام دادم جواب نمیده یعنی فایل ایجاد میشه اما با نام نا مشخص


<html>
<head>
<meta http-equiv="content-type" content="text/html ; charset=utf-8">
</head>
<body>
<?php
$file=file_get_contents("هما.txt");
file_put_contents("مینا.txt",$file);
?>
</body>
</html>


این نوع کارکتر ها ISO-Western هستن که مشکلی به وجود نمیارن .
در ضمن قابل بازیابی هم هستن.
و با همان اسم میشه محتوای فایل رو گرفت.

binyaft
پنج شنبه 06 آبان 1389, 13:16 عصر
امیرحسین عزیز یک تابع برای برگردوندن این حروف به حروف فارسی نوشته ، شاید بتونه کمک کنه http://boplo.ir/php/western-iso-to-persian/
موفق باشید

funpatogh
پنج شنبه 06 آبان 1389, 22:32 عصر
این نوع کارکتر ها ISO-Western هستن که مشکلی به وجود نمیارن .
در ضمن قابل بازیابی هم هستن.
و با همان اسم میشه محتوای فایل رو گرفت.
محتوای فایل مشکلی نداره مهم الان اسم فایل هستش که چیزی که میخواهیم نیستش من با فایل امیر حسین هم تست کردم نشد

mohmadd
جمعه 07 آبان 1389, 02:08 صبح
محتوای فایل مشکلی نداره مهم الان اسم فایل هستش که چیزی که میخواهیم نیستش من با فایل امیر حسین هم تست کردم نشد

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

http://up.iranblog.com/Files73/234033b04ae84273b2dd.jpg

funpatogh
جمعه 07 آبان 1389, 13:46 عصر
عزیز ما به دلخواه خودمان که جواب نباید بدهیم بسته به سوال کاربر باید دنبال جواب باشیم
نمیتونیم بگیم که چون ما راهی پیدا نکردیم کاربر رو مجبورکنیم که به اسم فایل نیاز نداشته باشه

mohmadd
جمعه 07 آبان 1389, 18:51 عصر
نمیتونیم بگیم که چون ما راهی پیدا نکردیم کاربر رو مجبورکنیم که به اسم فایل نیاز نداشته باشه
اقا جان در php این امکان وجود نداره که فایل utf8 با همون اسم بسازی .

بعدشم چرا حرف میزاری دهنم ؟
1. من هیچ کس رو مجبور نکردم که کاری انجام بده .
2.من به هیچ وجه نگفتم که به اسم فایل نیازی نداریم .

روی سئوال این بود: چطور میشه یک فایل فارسی ساخت ؟؟؟
جواب تغییر encoding فایل به utf8 بود.


شما وقتی فایل سلام.txt رو میسازی . دوباره با همون نام سلام.txt محتویاتش رو میگیری و میخونی .

اینجا زمانی که php محتویات فایل سلام.txt رو میخونه نام فایل به ISO-Western تبدیل میشه و سپس محتوایت فایل خونده میشه

یعنی شما دستی هم فایل سلام.txt رو بسازی . پی اچ پی چون اسم فایل رو به ISO-Western تبدیل میکنه مشکلی به وجود نمیاد .

حالا h.alizadeh مشکلتون چیه ؟
یا بگید در این روش چه مشکلی به وجود میاره ؟

h.alizadeh
یک شنبه 09 آبان 1389, 00:42 صبح
حالا h.alizadeh مشکلتون چیه ؟

من بجای دستور:
copy( $source, $destination );
در برنامه م این کد رو گذاشتم:
$file=file_get_contents($source);
file_put_contents($destination ,$file);

وقتی اسم فایل یا پوشه فارسی بود اررور میده و فایل با نام فارسی رو کپی نمیکنه:
Warning: file_get_contents(G:\wamp\www\alizadeh\upload\lett ers/???.txt) [function.file-get-contents (http://localhost:8080/alizadeh/function.file-get-contents)]: failed to open stream: No error in

اگر انگلیسی باشه اررور نمیده و عمل کپی رو کامل انجام میده.

ضمناً من پسوند فایلهای موردنظرم میتونه doc,docx,txt و... باشه.

funpatogh
یک شنبه 09 آبان 1389, 01:18 صبح
از این روش استفاده کنید احتمالا جواب میگیرید فقط نام فایل رو به ISO-Western نشان میدهد اما محتویات درست هست


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?php
function check($string)
{
$good=array("ی","ك");
$bad=array("ي","ک");
return str_replace($bad,$good,$string);
}

file_put_contents("علی.txt","سلام");
$file=check("علی.txt");
if(copy($file,check("رضا.txt")))
echo "OK";
else
echo "No";
?>
</body>
</html>

h.alizadeh
یک شنبه 09 آبان 1389, 22:35 عصر
ممنون،
من یک فایل بنام علی.txt ساختم و خط :

file_put_contents("علی.txt","سلام");

رو حذف کردم ، اررور میده اونوقت و کپی نمی کنه.

Warning: copy(علی.txt) [function.copy (http://localhost:8080/test/function.copy)]: failed to open stream: No such file or directory in G:\wamp\www\test\copyf.php on line 16
No

mohmadd
دوشنبه 10 آبان 1389, 14:06 عصر
من عرض کردم که فایل هایی که توسط php ساخته شدن . قابل خوندن نوشتن هستن .
و گفتم که فایل هایی که دستی ساخته میشن . هیچ دخالتی نمیتونن داشته باشه ...

funpatogh
دوشنبه 10 آبان 1389, 22:19 عصر
ممنون،
من یک فایل بنام علی.txt ساختم و خط :

file_put_contents("علی.txt","سلام");
رو حذف کردم ، اررور میده اونوقت و کپی نمی کنه.

Warning: copy(علی.txt) [function.copy (http://localhost:8080/test/function.copy)]: failed to open stream: No such file or directory in G:\wamp\www\test\copyf.php on line 16
No
درسته اگر فایل رو دستی بسازید مشکل داریم برای همین هم من این کد


file_put_contents("علی.txt","سلام");

رو نوشتم تا فایل رو توی php بسازیم

pishva62
شنبه 12 بهمن 1392, 17:09 عصر
سلام خسته نباشید من از تابع file_get_contents("http://cdn.tsetmc.com/Loader.aspx"); استفاده کردم و ادرس فوق را هم تحت هرشرایطی چه base64 , utf8 امتحان کردم اما جواب نگرفتم . و منظورم اینه که فونت ها کاملا به همریخته بودند و اصلا حتی با استفاده از تابع file_put_contetents هم نتوانستم فایل ذخیره شده در کام پیوتر را با فونت مربوطه فراخوانی کنم این در حالیه که و قتی سورس این سایت به خصوص را می بینم هیچ موردی ندارد و قابل رویت با فونت های فارسی است . ممنون می شوم راهنمایی بفرمایید چه کدی استفاده کنم تا این سورس قابل رویت باشه و فونت های اون به هم ریخته نباشد.