آژانس هواپیمایی
pop up

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

شروع موضوع توسط mehrzad22 ‏17 نوامبر 2007 در انجمن PHP

  1. mehrzad22

    mehrzad22 Registered User

    تاریخ عضویت:
    ‏8 نوامبر 2007
    نوشته ها:
    680
    تشکر شده:
    100
    من برای باز کردن غیر مستقیم یک صفحه از روی وب اون میخوام بیارم روی هاست خودم و نمایش بدم. با این تابع محتویات یک صفحه را میخونم
    PHP:

    function get_web_content($website_address) {
     if (!(
    $file_handlefopen($website_address"r"))) {
    }
     while (
    $line=fgets($file_handle,1000))
     {
     
    $site_content.=$line;
     }
     
    fclose ($file_handle);
     return 
    $site_content;
     }

    وقتی با اینترنت اکسپلورر این صفحه را از سایت اصلی باز میکنید یونیکد است و مشکلی نیست ولی وقتی با این تابع محتویات صفحه را می گیرم نتنها یونیکد نیست بلکه فونت ها کاملن مخدوش هستند (فونت های فارسی)

    دلیلش چیست آیا اون سایت تشخیص میده که من با مرروگر میام و کد بندیش را عوض میکنه یا اینکه من نکته ای را رعایت نمی کنم ؟
     
  2. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    خود این فایل رو با فرمت یونیکد سیو کردی؟؟
     
  3. mehrzad22

    mehrzad22 Registered User

    تاریخ عضویت:
    ‏8 نوامبر 2007
    نوشته ها:
    680
    تشکر شده:
    100
    مشکل من توی سیو کردن نیست . این صفحه یک صفحه وب هست وقتی که با مرورگر بازش می کنم charset اون utf-8 هست خود به خود . ولی وقتی از طریق هاست بازش میکنم مثلن میریزم توی یک متغیر میبینم charset دیگه یونیکد نیست و iso-8859-1 هست و به همین خاطر کارکتر های فارسی از بین رفتن .
    اون سایت احتمالن میفهمه من با مرورگر بازش کردم و یا پیش فرض برا مرورگرش یونیکد هست ولی وقتی از طریق هاست بازش می کنم دیکه صفحه را یونیکد تحویلم نمیده !
    حالا من چه طور باید خودم را جای مرورگر جا بزنم تا صفحه یونیکد به دستم برسه یا اصلن چرا وقتی از طرق هاست صفحه را باز می کنم با من به عنوان iso-8859-1 برخورد میکنه ؟
     
  4. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    همینجایی که متغیر رو توش echo میکنی باید انکدینگش uft-8 باشه ها ! انکدینگ چیزی نیست که از طریق منغیر منتقل بشه !
     
  5. weblizard

    weblizard کاربر تازه وارد

    تاریخ عضویت:
    ‏17 نوامبر 2007
    نوشته ها:
    6
    تشکر شده:
    0
    اگه سایت مذكور چند زبانه باشه این مشكل پیش میاد چون در این گونه موارد معمولا زبان كاربر را یا از طریق كوكی و یا از طریق زبان default مرورگر تشخیص میدهند كه در مورد code شما هیچكدام صادق نیست بنابراین صفحه مورد نظر با انكدینگ default ارسال می شود.

    اگه ممكنه آدرس صفحه رو بده ....
     
  6. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    مگه میشه جنس انکدینگ محتوای یه دیتابیس رو (مثلا!!) به همین راحتی عوض کرد آخه مگه برادر؟
     
  7. boxilink
  8. weblizard

    weblizard کاربر تازه وارد

    تاریخ عضویت:
    ‏17 نوامبر 2007
    نوشته ها:
    6
    تشکر شده:
    0
    ایشون صحبتی از دیتابیس نكردند !!!
    البته در مورد سیستم های چند زبانی شما میتونید برای هر زبان یك تیبیل داشته باشید با انكدینگ خاص خودش
    و پس از تشخیص نوع زبان كاربر از تیبل مربوط بخودش اطلاعات رو ارسال كنید ، این چیز عجیبیه ؟؟؟
     
  9. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    خواستم تاپیک رو منحرف کنم تابلو شد :D

    /

    خوب خودت گفتی با توجه به زبان انکدینگ صفحه رو عوض میکنن و از اونجایی که محتوای سایت بالاخره باید از توی دیتابیس بیاد بیرون (حالا از هر جا که میخواد بیاد) باید جنس انکدینگ اون متن هم عوض بشه دیگه !!
     
  10. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    از تو head صفحه میشه انکدینگ رو پیدا کرد!!
    نمیشه!؟ یه فیلد هم بزار که انکدینگ رو توش بنویسی!!
    بعد صفحه ذخیره شده رو با اون انکدینگ که سیو کردی نشون بده!!
     
  11. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    میشه !! حالا بیا انکدینگ صفحه رو هم عوض کن !! خوب که چی؟؟ بالاخره باید جنس انکدینگ مثلا پستهای تو صفحه هم عوض شه یا نه؟؟
     
  12. weblizard

    weblizard کاربر تازه وارد

    تاریخ عضویت:
    ‏17 نوامبر 2007
    نوشته ها:
    6
    تشکر شده:
    0
    نه دوستان حتما لازم نیست توی هد فایل (meta tag) اون رو بنویسند ، سرویس دهنده میتونه اون رو همراه هدر اولیه برای مرورگر ارسال كنه بدون این كه توی html چیزی بزاره
    در مورد محتوای سایت و دیتابیس هم كه حتما همه محتوا توی دیتابیس نیست ... هست ؟
    تا حالا به CMS هایی بر خورد نكردین كه برای فارسی سازی كافیه مثلا یه فایل farsi.php درست كنید و اون رو توی دایركتوری language بزارین;)

    البته منم با انحراف موافقم :lol:
     
  13. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    نصفه شبی کل کل نکن!!
    برو یه تیبل با دوتا فیلد بساز!!
    یکی بادی و یکی تایپ
    تو بادی متن صفحه رو اسکی سیو کن و تو تایپ انکدینگ خروجی!!
    بعد موقع اکسپورت انکدینگ صفحه رو با php بزار همونی که بوده!!
     
  14. avajang.com .leftavajang.com.right
  15. weblizard

    weblizard کاربر تازه وارد

    تاریخ عضویت:
    ‏17 نوامبر 2007
    نوشته ها:
    6
    تشکر شده:
    0
    جالبه mehrzad22 صداش در نمیاد !!! ؟
    دوست عزیز اگه یه لطف كنی و آدرس سایت رو بدی همه چیز حل میشه .....
     
  16. neo2

    neo2 Registered User

    تاریخ عضویت:
    ‏8 آپریل 2005
    نوشته ها:
    1,645
    تشکر شده:
    178
    محل سکونت:
    /cat/etc/passwd/
    اسکی کردن راه خوبی هست. البته encoding رو هم utf-8 بذاری ضرری نداره ..
     
  17. mehrzad22

    mehrzad22 Registered User

    تاریخ عضویت:
    ‏8 نوامبر 2007
    نوشته ها:
    680
    تشکر شده:
    100
    با چه دستوری میشه فهمید زبان و انکدینگ پیش فزض مرورگر چی هست و چطور میشه زبان پیش فرض مرورگر را تغییر داد ؟
    حال که من دارم بدون مرورگر به صفحه دسترسی پیدا می کنم چجور انکدینگ پیش فرضم را یونیکد نشون بدم که با من مثل مرور گر های یونیکد رفتار کنه؟
     
  18. mehrzad22

    mehrzad22 Registered User

    تاریخ عضویت:
    ‏8 نوامبر 2007
    نوشته ها:
    680
    تشکر شده:
    100
    دوستان اگه راه دیگه ای برا ذخیره کردن محتویات یک صفحه دارید که ممکنه مشکل من را برطرف کنه لطفن راهنماییم کنید
     
  19. bishtar

    bishtar کاربر تازه وارد

    تاریخ عضویت:
    ‏3 ژوئن 2007
    نوشته ها:
    211
    تشکر شده:
    3
    محل سکونت:
    هرکجا بغیر از اینجا
    اگه سرورت آپاچی هست کد زیرو تو فایل .htaccess بریز :
    AddDefaultCharset utf-8

    واسه من رو لوکال جواب داد.
    (التماس دعا)
     
  20. mehrzad22

    mehrzad22 Registered User

    تاریخ عضویت:
    ‏8 نوامبر 2007
    نوشته ها:
    680
    تشکر شده:
    100
    متاسفانه دسترسی ندارم به .htaccess

    خودم بالاخره مشکلم را حل کردم :)

    با استفاده از curl این هدر را فرستادم :

    بعد هم با curl خوندمش که همچی حل شد
    ممنونم از دوستان که راهنمایی کردند . بازم اگه راهم مشکل ایجاد میکنه یا را بهتری سراغ دارید بفرمایید