PDA

View Full Version : سوال: تنظیمات مربوط به مسیر فایلهای اینکلود در CPANEL به چه معنی هستن؟



i-php-i
سه شنبه 03 خرداد 1390, 17:44 عصر
توی سی پنل، قسمت تنظیمات پی اچ پی در مورد مسیر فایلهای اینکلود این توضیحات داده شده:


include_path Windows: "\path1;\path2" c:\php\includes" .:/usr/lib/php:/usr/local/lib/php


لطفا بگید که:

1- این کدها به چه معنی هستن؟

2- آیا می شه فایلهایی که می خوام اینکلود کنم رو توی پوشه php قرار بدم و از اونجا اینکلودشون کنم؟

3- آیا این تنظیمات توی همه سرورها یکسان هست یا نه؟

mtchabok
سه شنبه 03 خرداد 1390, 23:08 عصر
این تنظیم همون include_path در php.ini رو تنظیم میکنه ( البته امیدوارم که include_path رو درست نوشته باشم منظورم همون مسیر پیشفرض توابع include و require هس )
جواب 1 : این کدها مسیرهای اینکلود فایل رو مشخص میکنه که اگه آدرس وارد شده خودش وجود نداشت به ترتیب از سمت چپ طبق فرمول زیر آدرس رو چک میکنه .
include_path / include file
جواب 2 : بله میشه
جواب 3 : اینرو نمی دونم ... ولی میتونید در فایلهای خودتون توسط تابع set_include_path همین کار رو انجام بدین .

i-php-i
سه شنبه 03 خرداد 1390, 23:49 عصر
این تنظیم همون include_path در php.ini رو تنظیم میکنه ( البته امیدوارم که include_path رو درست نوشته باشم منظورم همون مسیر پیشفرض توابع include و require هس )
جواب 1 : این کدها مسیرهای اینکلود فایل رو مشخص میکنه که اگه آدرس وارد شده خودش وجود نداشت به ترتیب از سمت چپ طبق فرمول زیر آدرس رو چک میکنه .
include_path / include file
جواب 2 : بله میشه
جواب 3 : اینرو نمی دونم ... ولی میتونید در فایلهای خودتون توسط تابع set_include_path همین کار رو انجام بدین .

منظور از آدرس زیر چیه؟ من چنین آدرسی توی سرورم ندارم.


c:\php\includes" .:/usr/lib/php

tem988
چهارشنبه 04 خرداد 1390, 00:37 صبح
سلام
میشه درباره set_include_path یک مثال کامل بزنی
چون دنبال چنین تابعی بودم ممنون میشم

mtchabok
چهارشنبه 04 خرداد 1390, 09:31 صبح
منظور از آدرس زیر چیه؟ من چنین آدرسی توی سرورم ندارم.
c:\php\includes" .:/usr/lib/php

عزیزم اون قسمتی رو که پر رنگ کردم یه مسیر کامل برای اینکلود هس که همونطوریکه میبینید یه دونه : بینشون هس که این قسمتی رو که مشخص کردم رو تبدیل به دو آدرس میکنه :
- یکی مسیر محلی درخواست داده شده از سمت کاربر .
- یکی دیگه هم آدرس /usr/lib/php .


میشه درباره set_include_path یک مثال کامل بزنی
مثلا همین قسمتی رو که در بالا پر رنگ کردم رو میخوام که در دستورات php اینرو اعمال کنم :

set_include_path("." . PATH_SEPARATOR . "/usr/lib/php");

* این تابع همون عملیات ini_set('include_path',directory path); رو انجام میده .
یه توضیحی دیگه اینکه ثابت PATH_SEPARATOR در os های مختلف دارای کاراکترهای مختلفی هس مثلا در ویندوز ; هس و در لینوکس : واسه همین از این ثابت استفاده میشه که دیگه در osهای مختلف دچار مشکل نشیم .
و یه چیز دیگه هم همین ثابت یه کاراکتر هس که توسط اون php مسیرها رو میتونه از هم جدا کنه و استفاده کنه .

i-php-i
چهارشنبه 04 خرداد 1390, 11:52 صبح
عزیزم اون قسمتی رو که پر رنگ کردم یه مسیر کامل برای اینکلود هس که همونطوریکه میبینید یه دونه : بینشون هس که این قسمتی رو که مشخص کردم رو تبدیل به دو آدرس میکنه :
- یکی مسیر محلی درخواست داده شده از سمت کاربر .
- یکی دیگه هم آدرس /usr/lib/php .


مثلا همین قسمتی رو که در بالا پر رنگ کردم رو میخوام که در دستورات php اینرو اعمال کنم :

set_include_path("." . PATH_SEPARATOR . "/usr/lib/php");

* این تابع همون عملیات ini_set('include_path',directory path); رو انجام میده .
یه توضیحی دیگه اینکه ثابت PATH_SEPARATOR در os های مختلف دارای کاراکترهای مختلفی هس مثلا در ویندوز ; هس و در لینوکس : واسه همین از این ثابت استفاده میشه که دیگه در osهای مختلف دچار مشکل نشیم .
و یه چیز دیگه هم همین ثابت یه کاراکتر هس که توسط اون php مسیرها رو میتونه از هم جدا کنه و استفاده کنه .
لطفا بگید که یه آدرس رو چطور باید توی تابع set_include_path قرار بدم که از ثابت PATH_SEPARATOR هم توش استفاده بشه؟
لطفا کد زیر رو با استفاده از ثابت set_include_path اصلاح کنید.

set_include_path('http://localhost/admin/templates/info/');

mtchabok
پنج شنبه 05 خرداد 1390, 11:45 صبح
عزیزم url که نباید باشه . باید آدرس داخلی سیستم باشه . مثلا من آدرس روت سایت رو در متغیر $root قرار میدم بعدش این url ای که نوشتین به این صورت میشه :

set_include_path($root.'/admin/templates/info/');
اگه مسیر دیگه ای رو هم میخواید اضافه کنید باید از ثابت PATH_SEPARATOR بین مسیرها استفاده کنید .
نگاهی با رفرنس بندازین : http://ir.php.net/manual/en/function.set-include-path.php

i-php-i
پنج شنبه 05 خرداد 1390, 12:34 عصر
عزیزم url که نباید باشه . باید آدرس داخلی سیستم باشه . مثلا من آدرس روت سایت رو در متغیر $root قرار میدم بعدش این url ای که نوشتین به این صورت میشه :

set_include_path($root.'/admin/templates/info/');
اگه مسیر دیگه ای رو هم میخواید اضافه کنید باید از ثابت PATH_SEPARATOR بین مسیرها استفاده کنید .
نگاهی با رفرنس بندازین : http://ir.php.net/manual/en/function.set-include-path.php
تست می کنم، ببینم چی می شه.