PHP: Document Document Directory Backslash مشكلة
سؤال
أحاول ربط ورقة أنماط في ملف الرأس الخاص بي باستخدام $ _Server ["document_root"] كما يلي:
<head>
<?php
print "<link href='".$_SERVER["DOCUMENT_ROOT"]."/include/style.css' rel='stylesheet' type='text/css' />";
?>
<title>eLMS</title>
</head>
منذ أن أختبر محليا، أحصل على الطريق كما هو:
<head>
<link href='C:\Users\wretrOvian\Documents\eLMS\site/include/style.css' rel='stylesheet' type='text/css' /> <title>eLMS</title>
</head>
وهذا لا يجري في فايرفوكس. يفعل في IE ومع ذلك. من الواضح أن هذه مشكلة التحقق من الصحة. ولكن، حاولت نفس الكود على خادم - مع نفس النتائج. :(
كيف أذهب حول إصلاح هذا؟ قد يعمل المنتج النهائي أو لا يعمل على خادم محلي، لذلك أحتاج إلى رمز مرن ..
أنا أستخدم Webserver Abyss X1 مع PHP 5.2.8
يجب أن أستخدم المسارات المطلقة - لأنني لا أريد نسخ مجلد التضمين إلى كل دليل فرعي للتطبيق. أحتاج أن أكون قادرا على الرجوع إليها من كل مكان.
المحلول
فقط استخدم هذا:
<head>
<link href='/include/style.css' rel='stylesheet' type='text/css' />
<title>eLMS</title>
</head>
أو، إذا تم استخدامه محليا:
<head>
<link href='../include/style.css' rel='stylesheet' type='text/css' />
<title>eLMS</title>
</head>
جذر المستند هو للاستخدام الداخلي (داخل PHP) فقط، وليس في HTML الخاص بك.
نصائح أخرى
جرب استخدام:
$_SERVER['HTTP_HOST']
لا تستخدم المسار المطلق لنظام الملفات، واستخدام مسار نسبي (ولكن ليس بما في ذلك) جذر المستند. في هذه الحالة فقط /include/style.css
.
لاستخدام الملفات المحلية من المتصفح، استخدم file
مخطط.
file://C:/dir/file.ext
file:///dir/file.ext
لست متأكدا مما إذا كنت بحاجة إلى مقلطين أو ثلاثة، ربما اثنين على Windows مع حرف محرك الأقراص، ثلاثة على * nix مع مائل الجذر، على الرغم من أنني يبدو أنني أسأل عن رؤية ثلاثة مخطوطات مع حرف محرك الأقراص. جربها! : P.
حاول استخدام DIRECTORY_SEPARATOR
ثابت. تقوم بإرجاع على أنظمة Windows و / على أنظمة NIX * NIX.
بادئ ذي بدء، يتمثل جذر المستند حرفيا في دليل خادم الويب / الموجود في. لا تريد عادة استخدام هذا مع أي محتوى على الويب. استخدام / بدلا من ذلك.