.تعمیـــرکاران کیان ست (kiansat.kim)تابع قوانین -جمهموری-اسلامی ایران میباشد و ارسال هر گونه مطلب سیاسی،مذهبی،غیراخلاقی و خرید و فروش متعلقات ماه-واره و دیگر موارد مجرمانه ممنوع میباشد وبا کاربران خاطی به شدت برخورد میگردد انجمن فقط تعمیرات لوازم الکترونیک میباشد...













سلام مهمان گرامی؛
به کیان ست خوش آمدید برای مشاهده انجمن با امکانات کامل می بايست از طريق این لینک عضو شوید.

http://teranzit.pw/uploads/14469017281.png
پیام خصوصی به مدیریت کل سایت ........... صفحه توضیحات و شرایط گروه ویژه ........... ...........
ارتباط تلگرامی با مدیریت سایت ................. ایدی تلگرام suportripair@ .................
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: مباحث حرفه‌ای تغییر basedir در include کردن در زبان PHP و همینطور href در HTML

  1. #1


    تاریخ عضویت
    Oct 2010
    نوشته ها
    198
    تشکر ها
    38
    401 سپاس از181 پست

    مباحث حرفه‌ای تغییر basedir در include کردن در زبان PHP و همینطور href در HTML

    این مبحث کمی سنگین است، باید پیش از این، با کاربرد include در PHP به خوبی آشنا باشید.
    وقتی پای subfolder (زیرپوشه) و ایمپورت کردن (import=وارد کردن) فایل‌های مختلف در میان باشد، دردسرهای بسیاری گریبان‌گیر شماست! از جمله تغییراتی که در آدرس‌ها ایجاد می‌شود.
    من مبحث را با یک مثال توضیح می‌دهم:
    تصور کنید من یک فایل به نام index.php دارم که در مسیر زیر است:
    /gallery/index.php
    یعنی در پوشه gallery قرار دارد.
    در کنار پوشه gallery، یک فایل دارم به نام header.php و یک فایل به نام config.php و یک فایل هم به نام x.php. یعنی تا اینجا داریم:
    /gallery/index.php
    /header.php
    /config.php
    /x.php
    حالا در فایل index.php دارم:
    Click here to enlarge
    یعنی فایل header.php را از پوشه قبل (/..) ایمپورت کرده‌ام.
    خوب، حالا محتویات فایل header.php را ببینید:
    Click here to enlarge
    یعنی در این فایل، فایل config.php را ایمپورت کرده‌ام.
    به نظر شما، اگر فایل index.php (که درون پوشه gallery قرار دارد) را اجرا کنم، آیا فایل config.php نیز ایمپورت خواهد شد؟


    جواب: خیر!
    چون بعد از ایمپورت، کدهای فایل index.php در حقیقت اینطور خواهد شد:
    کدهای پررنگ‌تر در حقیقت کدهای موجود در فایل header.php است که به جای عبارت include header.php می‌نشیند:
    //Some codes here
    //Some codes here
    include 'config.php';
    //Some codes here
    //Some codes here
    ?>
    و در این صورت، آدرس فایل config.php اشتباه است! و طبیعتاً ایمپورت صورت نمی‌گیرد.
    چه کار باید کرد؟

    شاید بگویید خوب، محتویات فایل header.php را اگر اینطور کنی، درست می‌شود:
    Click here to enlarge
    بله، اما این یک مسکن است! نه راه حل درست! چون تصور کنید ما فایل header.php را به فایل x.php هم ایمپورت کرده باشیم! در حالت اول فایل x.php درست کار می‌کرد، اما در این حالت، دیگر درست کار نمی‌کند.
    یعنی اگر بر اساس زیرپوشه کدنویسی کنید، فایل‌های سطح بالاتر به هم می‌ریزند و اگر بر اساس سطح بالا کدنویسی کنید، ایمپورت‌های زیرپوشه به هم می‌ریزد!
    ضمن اینکه گاهی اوقات ده‌ها include در فایل header.php داریم. عاقلانه نیست که بنشینیم، یکی یکی ابتدا آن‌ها /.. بگذاریم!
    راه حل:
    استفاده از تابع chdir()‎

    این تابع base یا مبنای includeها را تغییر می‌دهد. کافی‌ست در ابتدای فایل index.php از این تابع استفاده کنیم. در این صورت، در نظر گرفته می‌شود که فایل index.php در مسیری که شما مشخص کرده‌اید، قرار دارد.
    دقت کنید:
    Click here to enlarge
    حالا دیگر مشکلی نخواهد بود و فایل config.php نیز ایمپورت خواهد شد. چون حالا دیگر index.php مثل x.php در سطح بالاتر (یعنی در روت) عمل خواهد کرد.

    تغییر مبنای href:

    و اما، گاهی اوقات نیز شما نیاز دارید که کل لینک‌های یک صفحه را که به صورت نسبی (relative) آدرس‌دهی شده‌اند، تغییر مبنا (base) دهید. یعنی فرض کنید در یک سایت فایل index.html را از روت یک سایت کپی یا منتقل کرده‌ایم به داخل یک پوشه. طبیعتاً قبلاً همه آدرس‌ها درست بوده است. مثلاً برای رفتن به فایل گالری عکس، در آنجا به این صورت آدرس داده‌ایم:
    <a href="gallery.html">گالری عکس</a>
    اما اگر این فایل بیاید در یک پوشه، همه چیز به هم می‌ریزد! چون دیگر برای رفتن به گالری عکس، باید بنویسیم:
    <a href="../gallery.html">گالری عکس</a>
    یعنی اگر نکته‌ای که می‌گویم را ندانیم، باید تمام لینک‌ها را به صورت دستی ویرایش کنیم! بدتر اینکه گاهی اوقات اصلاح این فایل‌ها ممکن نیست!
    به هر حال، برای تغییر base (یعنی نقطه شروع آدرس دهی) از تگی به نام <base> استفاده می‌کنیم.
    کافی‌ست در ابتدای فایل خود بنویسید:
    <base href="../" />
    همین!
    این، مثل این است که تمام لینک‌ها را یک به یک ویرایش کنید و ابتدای آن‌ها /.. اضافه کنید.
    [CENTER]:1205219183:
    [B][FONT=Tahoma][SIZE=3][COLOR=#0000ff][URL="http://kiansat3.ir/showthread.php?t=47100"]فروش جدیدترین و کاملترین پکیج نرم افزاری و بازی و آموزشی و تعمیراتی انواع موبایل ها بصورت کاملا فارسی به همراه چندین اشانتیون[/URL][/COLOR][/SIZE][/FONT][/B]
    [B]:1205219183::فقط خودت باش نه کسی دیگر!
    :lay:
    [/B][/CENTER]

  2. نمایش تمام تشکر های Borna66 در این پست:

    iraj_kh (24th July 2012)

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

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

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

کلمات کلیدی این موضوع

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

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


Copyright ©2000 - 2013, Jelsoft Enterprises Ltd کیــــــــــان ستـــــــــــ ...® اولین و بزرگترین سایت فوق تخصصی الکترونیک در ایران



Cultural Forum | Study at Malaysian University