PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : خطا در include فایل ها



jahromy
August 19th, 2016, 15:25
سلام
دو فایل داخل پوشه دارم که اولی را در فایل دومی include میکنم
حالا فایل های دیگری که در پوشه های ماقبل پوشه اول دارم وقتی فایل دوم را include و فایل سوم را اجرا می کنم نسبت به آدرس include فایل اولی خطا می دهد
این مشکل را چطور برطرف کنم؟

illusive_man
August 19th, 2016, 15:40
سلام
دو فایل داخل پوشه دارم که اولی را در فایل دومی include میکنم
حالا فایل های دیگری که در پوشه های ماقبل پوشه اول دارم وقتی فایل دوم را include و فایل سوم را اجرا می کنم نسبت به آدرس include فایل اولی خطا می دهد
این مشکل را چطور برطرف کنم؟

احتمالا دلیلش آدرس دهی relative شما هست. شما وقتی فایلی رو در فایل دیگه include می کنید عملا انگار کد های اون فایل رو در اون مکان قرار میدید، بنابراین تمامی آدرس دهی ها می بایست به گونه ای باشد که برای همه فایل های دارای آن قطعه کد قابل شناسایی و دسترس باشد.

vmpanel.ir
August 19th, 2016, 20:37
سلام
شايد دوبار include ميشه .

بهتره از
include_once
استفاده كنيد ببينيد مشكل حل ميشه

arash_fa
August 21st, 2016, 21:44
مشکل در آدرس دهی می باشد

فایل اول یا مادر که در لحظه اول لود میشه را مرجع قرار بدید و مسیرش را مشخص گنید


[PHP]
chdir(dirname(__FILE__));

define('ROOT',dirname(__FILE__));
/[PHP]

حالا ثابت ROOT حاوی مسیر اول شما هست و به راحتی میتونید در بقیه اینگلودها استفاده کنید

iHSG
August 22nd, 2016, 00:18
سلام
یه نکته ای هم به حرف های استادان گرامی اضافه کنم که من تو یه سایت خارجی که بنچ مارک های کدنویسی php توش بود خوندم که نوشته بود آدرس کامل نوشتن حتی سرعتش بالاتر از آدرس های Relative هستش.
برای همین من همیشه تو کار های خودم اولین خط اولین فایل یه مقدار ثابت سراسری با تابع define تعیین میکنم که توش آدرس کامل هاست خودم تو اون سروری که هستم رو می نویسم بعدش هر جا نیاز به فراخوانی فایل php دیگه ای شد این مقدار سراسری رو قبل آدرس فایل میزنم.
نکته دیگه اینکه در همون سایت گفته بود require ظاهراً سرعت بالاتری نسبت به include و include_once و حتی require_once برای فراخوانی فایل های php داره یه خوبی توابع require و require_once برخلاف دو تابع include و include_once هم اینه که اگر فایل مورد نظر شما وجود نداشته باشه اجرای برنامه php شما متوقف میشه و مفسر php اخطار Fatal Error میده ولی با include و include_once وقتی فایل php مورد نظر هم نباشه برای مفسر php مهم نیستش و اون خط فراخوانی فایل رو رد میکنه و میره سراغ سایر کد ها.