صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 11

موضوع: مشکل نام فایل فارسی

  1. #1
    عضو جدید HRE2012 آواتار ها
    تاریخ عضویت
    Sep 2013
    محل سکونت
    مشهد
    نوشته ها
    53
    تشکر تشکر کرده 
    85
    تشکر تشکر شده 
    108
    تشکر شده در
    70 پست

    پیش فرض مشکل نام فایل فارسی

    با عرض سلام خدمت دوستان گرامی
    من میخوام بعد درج خبر یک فایل php اتومات بسازم که با fopen میسازمش(مثلا فایلی با نام (تست.php))
    فقط مشکل زمانیه که میخوام فایلو فارسی ذخیره کنم
    کلا بهم میریزه
    انواع کدارو تست کردم جواب نداد
    در ضمن در محیط xampp و windows
    واقعا کلافم کرده ممنون میشم راهنمایی کنید.
    id telegram:hosienra

  2. # ADS




     

  3. #2
    عضو جدید HRE2012 آواتار ها
    تاریخ عضویت
    Sep 2013
    محل سکونت
    مشهد
    نوشته ها
    53
    تشکر تشکر کرده 
    85
    تشکر تشکر شده 
    108
    تشکر شده در
    70 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    دوستان لطفا کمک کنید
    id telegram:hosienra

  4. #3
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    نقل قول نوشته اصلی توسط HRE2012 نمایش پست ها
    با عرض سلام خدمت دوستان گرامی
    من میخوام بعد درج خبر یک فایل php اتومات بسازم که با fopen میسازمش(مثلا فایلی با نام (تست.php))
    فقط مشکل زمانیه که میخوام فایلو فارسی ذخیره کنم
    کلا بهم میریزه
    انواع کدارو تست کردم جواب نداد
    در ضمن در محیط xampp و windows
    واقعا کلافم کرده ممنون میشم راهنمایی کنید.
    سلام وقت بخیر

    عزیز حالا چرا میخوایید فارسی ذخیره کنید ؟!
    اگه قرار هست اون فایل رو دوباره برای کاری بارگزاری کنید بهتره اسم فایل رو تو دیتابیس ذخیره کنید موقع فراخونی هم از دیتابیس نام فایل رو دارید فایل رو باز کنید به همین راحتی

  5. تعداد تشکر ها ازomid1991 به دلیل پست مفید


  6. #4
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    سلام، باید کاراکتر انکودینگ، رشته ـتون را تغییر بدید (CP1256) :

    کد PHP:
    $name iconv("UTF-8""CP1256//IGNORE","سلام.txt");
    $handle fopen($name"w+"); 
    ویرایش توسط T.Toosi : June 20th, 2017 در ساعت 22:19

  7. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  8. #5
    عضو جدید HRE2012 آواتار ها
    تاریخ عضویت
    Sep 2013
    محل سکونت
    مشهد
    نوشته ها
    53
    تشکر تشکر کرده 
    85
    تشکر تشکر شده 
    108
    تشکر شده در
    70 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    نقل قول نوشته اصلی توسط omid1991 نمایش پست ها
    سلام وقت بخیر

    عزیز حالا چرا میخوایید فارسی ذخیره کنید ؟!
    اگه قرار هست اون فایل رو دوباره برای کاری بارگزاری کنید بهتره اسم فایل رو تو دیتابیس ذخیره کنید موقع فراخونی هم از دیتابیس نام فایل رو دارید فایل رو باز کنید به همین راحتی
    سلام وقتتون بخیر
    منم همین کارو کردم ولی میخوام آدرس فایلی که باز میکنه مرتبط باشه با مطلب

    - - - Updated - - -

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    سلام، باید کاراکتر انکودینگ، رشته ـتون را تغییر بدید (CP1256) :

    کد PHP:
    $name iconv("UTF-8""CP1256//IGNORE","سلام.txt");
    $handle fopen($name"w+"); 
    با این کدم همون مشکلو داره متن بهم ریخته فک کنم چون محیطه زمپ هست اینطوریه
    id telegram:hosienra

  9. #6
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    نقل قول نوشته اصلی توسط HRE2012 نمایش پست ها
    سلام وقتتون بخیر
    منم همین کارو کردم ولی میخوام آدرس فایلی که باز میکنه مرتبط باشه با مطلب

    - - - Updated - - -


    با این کدم همون مشکلو داره متن بهم ریخته فک کنم چون محیطه زمپ هست اینطوریه
    من تست کردم درست بود فقط حرف 'ی' رو حذف میکرد.
    کد PHP:
    $data "تست دیتا\r\nتست دیتا";
    $filename "سلام چطوری خوبی";
    $filename iconv("UTF-8""CP1256//IGNORE"$filename);
    $filename str_replace(" ""_"$filename);
    $filename .= ".php";
    $f=fopen($filename,"w+");
    fwrite($f,$data);
    fclose($f);

    echo 
    file_get_contents($filename); 

  10. تعداد تشکر ها از omid1991 به دلیل پست مفید


  11. #7
    عضو انجمن AtrafNet آواتار ها
    تاریخ عضویت
    Nov 2016
    نوشته ها
    259
    تشکر تشکر کرده 
    2,584
    تشکر تشکر شده 
    729
    تشکر شده در
    417 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    سلام
    کلاً فارسی ذخیره کردن داده ها اشتباهه خصوصاً که اگه یه روز بخواید فایل ها رو توسط کنترل پنل هایی مثل سی پنل و دایرکت ادمین مدیریت کنید دیگه کلاً به مشکل می خورید.

    به نظرم کاری که جناب omid1991 گفتن یعنی ذخیره نام فایل اصلی که انگلیسیه + نام فارسی فایل در ستون های جدای دیتابیس درست ترین راه حله و اینطوری می تونید با وارد کردن نام فارسی توسط کاربر از طریق دیتابیس نام اصلی فایل رو پیدا کنید و محتواش رو نشون بدید.

    اما اگر اینو به هر دلیلی نتونستید یا اگر پروژه بدون دیتابیس دارید می تونید نام فارسی فایل رو Hash کنید و دفعات بعد هم که کاربر درخواست محتوای مرتبط با اون نام فارسی رو کرد دوباره Hash میکنید و چک میکنید که فایلی با این نام Hash شده وجود داره یا نه و اگر وجود داشت فراخوانیش میکنید.

    نمونه مثلاً اینطوری:

    کد PHP:
    <?php
    $nameFarsi 
    'سلام';
    $nameHashShode md5($nameFarsi) . '.php';
    if (
    file_exists($nameHashShode)){
     require_once(
    $nameHashShode);
    }
    حالا این خیلی ساده است و فقط مثاله بهتره علاوه بر چک کردن ورودی کاربر محض احتیاط بیشتر از Salt هم در هش استفاده کنید.

    به علاوه اگر فقط می خواین در آدرس URL فارسی باشه بهتره که فایل index.php اصلی سایت رو موظف مسیر دهی (Routing) مناسب مثل پروژه های MVC کنید تا اینکه بخواید هر فایل php با نام فارسی رو جدا جدا فراخوانی کنید.

    همینطور قواعد آپاچی و فایل htaccess. خیلی تو این زمینه کمکتون میکنه.

    مثل وردپرس که در واقع هیچ فایل فارسی وجود نداره اما URL فارسی تولید میکنه.
    ویرایش توسط AtrafNet : June 21st, 2017 در ساعت 09:19

  12. تعداد تشکر ها از AtrafNet به دلیل پست مفید


  13. #8
    عضو جدید HRE2012 آواتار ها
    تاریخ عضویت
    Sep 2013
    محل سکونت
    مشهد
    نوشته ها
    53
    تشکر تشکر کرده 
    85
    تشکر تشکر شده 
    108
    تشکر شده در
    70 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    نقل قول نوشته اصلی توسط AtrafNet نمایش پست ها
    سلام
    کلاً فارسی ذخیره کردن داده ها اشتباهه خصوصاً که اگه یه روز بخواید فایل ها رو توسط کنترل پنل هایی مثل سی پنل و دایرکت ادمین مدیریت کنید دیگه کلاً به مشکل می خورید.

    به نظرم کاری که جناب omid1991 گفتن یعنی ذخیره نام فایل اصلی که انگلیسیه + نام فارسی فایل در ستون های جدای دیتابیس درست ترین راه حله و اینطوری می تونید با وارد کردن نام فارسی توسط کاربر از طریق دیتابیس نام اصلی فایل رو پیدا کنید و محتواش رو نشون بدید.

    اما اگر اینو به هر دلیلی نتونستید یا اگر پروژه بدون دیتابیس دارید می تونید نام فارسی فایل رو Hash کنید و دفعات بعد هم که کاربر درخواست محتوای مرتبط با اون نام فارسی رو کرد دوباره Hash میکنید و چک میکنید که فایلی با این نام Hash شده وجود داره یا نه و اگر وجود داشت فراخوانیش میکنید.

    نمونه مثلاً اینطوری:

    کد PHP:
    <?php
    $nameFarsi 
    'سلام';
    $nameHashShode md5($nameFarsi) . '.php';
    if (
    file_exists($nameHashShode)){
     require_once(
    $nameHashShode);
    }
    حالا این خیلی ساده است و فقط مثاله بهتره علاوه بر چک کردن ورودی کاربر محض احتیاط بیشتر از Salt هم در هش استفاده کنید.

    به علاوه اگر فقط می خواین در آدرس URL فارسی باشه بهتره که فایل index.php اصلی سایت رو موظف مسیر دهی (Routing) مناسب مثل پروژه های MVC کنید تا اینکه بخواید هر فایل php با نام فارسی رو جدا جدا فراخوانی کنید.

    همینطور قواعد آپاچی و فایل htaccess. خیلی تو این زمینه کمکتون میکنه.

    مثل وردپرس که در واقع هیچ فایل فارسی وجود نداره اما URL فارسی تولید میکنه.
    آها منم url فارسی میخوام پس حتما لازم نیست که فایلمونو فارسی بسازیم تا url فارسی تولید کنه.
    خب میشه بگید چطور اینکارو بکنم؟
    اگه منبعی واسه مطالعه این مباحث داشتین ممنون میشم چون کل سایتارو گشتم.
    موفق باشید.
    id telegram:hosienra

  14. #9
    عضو انجمن AtrafNet آواتار ها
    تاریخ عضویت
    Nov 2016
    نوشته ها
    259
    تشکر تشکر کرده 
    2,584
    تشکر تشکر شده 
    729
    تشکر شده در
    417 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    نقل قول نوشته اصلی توسط HRE2012 نمایش پست ها
    آها منم url فارسی میخوام پس حتما لازم نیست که فایلمونو فارسی بسازیم تا url فارسی تولید کنه.
    خب میشه بگید چطور اینکارو بکنم؟
    اگه منبعی واسه مطالعه این مباحث داشتین ممنون میشم چون کل سایتارو گشتم.
    موفق باشید.

    برای ایجاد URL های فارسی یا هر چیز دیگه شما باید اول به وب سرور دستور بدید که مدیریت تمامی URL هایی که وجود نداره رو به جای نمایش اخطار 404 به فایل index.php شما بده.
    که اگه در وردپرس هم بخش پیوند های یکتا از حالت پیش فرض تغییرش بدید می بینید که چند خط کد به فایل htaccess. که قواعدی برای درخواست کنترل وب سرور هستش اضافه میکنه.
    کد مورد نظر هم اینه و خوبی اش اینه که برای هر سایتی به جز وردپرس هم می تونید استفاده کنید و کنار فایل index.php خودتون یه فایل htaccess. (نقطه باید اولش باشه) اضافه کنید و توش بذارید:

    کد:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    منبع: https://codex.wordpress.org/htaccess


    خب تا این جا اگه چک کنید می بینید که هر آدرس URL مختلفی که بزنید بازم صفحه اصلی که همون index.php باشه باز میشه.

    حالا از اینجا به بعد index.php وظیفه بررسی URL و مسیر دهی کاربر به محتوای مورد نظر رو داره.

    شما باید بر اساس نوع URL دلخواهی که دوست دارید شناسه منحصر به فردی برای هر مطلب درست کنید و در فایل index.php بر اساس اون شناسه منحصر به فرد که در URL هستش محتوا رو حالا از فایل یا دیتابیس فراخوانی کنید و به کاربر نمایش بدید.

    برای خوندن URL ها هم می تونید از آیتم REQUEST_URI در آرایه سراسری SERVER_$ استفاده کنید اینطوری:

    کد PHP:
    <?php
    $url 
    explode('/'$_SERVER['REQUEST_URI']);
    print_r($url);
    در کد بالا توسط تابع explode متن Request URI در هر کاراکتر اسلش ( / ) قطع شده و متون بین کاراکتر های اسلش به صورت آیتم های جدا در یه آرایه به نام url$ قرار گرفتن.

    در آخر هم با تابع print_r آرایه url$ رو در صفحه نمایش دادیم.

    فکر کنم دیگه تا آخرشو متوجه شده باشید نه؟ از اینجا به بعد براحتی بر اساس نوع URL شما باید یا به دیتابیس Query بزنید و محتوا بگیرید یا اینکه از فایلی مرتبط با شناسه منحصر به فردی که تو URL هستش محتوا رو نشون بدید.

    در آخر هم اگر محتوایی بر اساس URL وارد شده وجود نداشت باید یه صفحه دلخواه برای اخطار 404 نشون بدید البته بایدی وجود نداره می تونید به جاش با تابع header ریدایرکت کنید به صفحه اصلی.

    ناگفته نمونه که اگر صرفاً کار با URL هست و نوع و ظاهر URL ها مهم نیست می تونید کلاً از متد GET (منظورم مثل آدرس دهی تاپیک های این انجمن) استفاده کنید تا دیگه نیاز به فایل htaccess. و مسیردهی با index.php و... هم نداشته باشید و براحتی با آرایه سراسری GET_$ مقادیر رو از URL دریافت کنید.
    ویرایش توسط AtrafNet : June 21st, 2017 در ساعت 19:55

  15. تعداد تشکر ها از AtrafNet به دلیل پست مفید


  16. #10
    عضو جدید HRE2012 آواتار ها
    تاریخ عضویت
    Sep 2013
    محل سکونت
    مشهد
    نوشته ها
    53
    تشکر تشکر کرده 
    85
    تشکر تشکر شده 
    108
    تشکر شده در
    70 پست

    پیش فرض پاسخ : مشکل نام فایل فارسی

    نقل قول نوشته اصلی توسط atrafnet نمایش پست ها
    برای ایجاد url های فارسی یا هر چیز دیگه شما باید اول به وب سرور دستور بدید که مدیریت تمامی url هایی که وجود نداره رو به جای نمایش اخطار 404 به فایل index.php شما بده.
    که اگه در وردپرس هم بخش پیوند های یکتا از حالت پیش فرض تغییرش بدید می بینید که چند خط کد به فایل htaccess. که قواعدی برای درخواست کنترل وب سرور هستش اضافه میکنه.
    کد مورد نظر هم اینه و خوبی اش اینه که برای هر سایتی به جز وردپرس هم می تونید استفاده کنید و کنار فایل index.php خودتون یه فایل htaccess. (نقطه باید اولش باشه) اضافه کنید و توش بذارید:

    کد:
    <ifmodule mod_rewrite.c>
    rewriteengine on
    rewritebase /
    rewriterule ^index\.php$ - [l]
    rewritecond %{request_filename} !-f
    rewritecond %{request_filename} !-d
    rewriterule . /index.php [l]
    </ifmodule>
    منبع: https://codex.wordpress.org/htaccess


    خب تا این جا اگه چک کنید می بینید که هر آدرس url مختلفی که بزنید بازم صفحه اصلی که همون index.php باشه باز میشه.

    حالا از اینجا به بعد index.php وظیفه بررسی url و مسیر دهی کاربر به محتوای مورد نظر رو داره.

    شما باید بر اساس نوع url دلخواهی که دوست دارید شناسه منحصر به فردی برای هر مطلب درست کنید و در فایل index.php بر اساس اون شناسه منحصر به فرد که در url هستش محتوا رو حالا از فایل یا دیتابیس فراخوانی کنید و به کاربر نمایش بدید.

    برای خوندن url ها هم می تونید از آیتم request_uri در آرایه سراسری server_$ استفاده کنید اینطوری:

    کد PHP:
    <?php
    $url 
    explode('/'_server['request_uri']);
    print_r($url);
    در کد بالا توسط تابع explode متن request uri در هر کاراکتر اسلش ( / ) قطع شده و متون بین کاراکتر های اسلش به صورت آیتم های جدا در یه آرایه به نام url$ قرار گرفتن.

    در آخر هم با تابع print_r آرایه url$ رو در صفحه نمایش دادیم.

    فکر کنم دیگه تا آخرشو متوجه شده باشید نه؟ از اینجا به بعد براحتی بر اساس نوع url شما باید یا به دیتابیس query بزنید و محتوا بگیرید یا اینکه از فایلی مرتبط با شناسه منحصر به فردی که تو url هستش محتوا رو نشون بدید.

    در آخر هم اگر محتوایی بر اساس url وارد شده وجود نداشت باید یه صفحه دلخواه برای اخطار 404 نشون بدید البته بایدی وجود نداره می تونید به جاش با تابع header ریدایرکت کنید به صفحه اصلی.

    ناگفته نمونه که اگر صرفاً کار با url هست و نوع و ظاهر url ها مهم نیست می تونید کلاً از متد get (منظورم مثل آدرس دهی تاپیک های این انجمن) استفاده کنید تا دیگه نیاز به فایل htaccess. و مسیردهی با index.php و... هم نداشته باشید و براحتی با آرایه سراسری get_$ مقادیر رو از url دریافت کنید.
    ممنونم واقعا کامل و مفید بود فقط برای دوستانی که شاید در آینده این واسشون سوال بشه بگم قسمت ['server['request_uri_$ علامت ($)هم هست که پاک میشه
    ویرایش توسط HRE2012 : June 21st, 2017 در ساعت 19:04
    id telegram:hosienra

  17. تعداد تشکر ها از HRE2012 به دلیل پست مفید


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 11
    آخرين نوشته: December 9th, 2015, 19:19
  2. پاسخ ها: 2
    آخرين نوشته: November 28th, 2013, 15:43
  3. پاسخ ها: 1
    آخرين نوشته: November 27th, 2013, 01:06
  4. پاسخ ها: 3
    آخرين نوشته: November 19th, 2013, 11:56

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •