سؤال

وكيف يمكن للمرء خلق دينامية CSS و JavaScript على ذبابة (باستخدام PHP). هذا يحتاج إلى أن يتم ذلك لها صفحات مختلفة مجموعة مختلفة من العناصر في بعض الأحيان، لذلك التفاف وارسال فإن CSS كبيرة / JS في كل مرة يكون مبالغة. ولماذا كثير من المواقع لديها علامات رابط مثل هذا:

<link rel='stylesheet' type='text/css' href='css/style.css?pg_id=43&post=62'>

وكيف CSS التوصل الى معرفة المعلمات GET؟

وبما أن هذا قد ينطوي على URL إعادة كتابة أو باستخدام وظيفة رأس، يرجى تقديم أمثلة قصيرة

هل كانت مفيدة؟

المحلول

وهكذا، هناك قليل من الطرق المختلفة التي يمكنك اتخاذها هنا. أولا، إذا كان لديك الوصول إلى الملفات virtualhost اباتشي، ويمكنك تعيين CSS ليتم قراءتها من قبل مترجم بي. أنا لم تفعل هذا ولن أوصي به بالضبط ولكن على سبيل المثال هو:

<VirtualHost *:80>
  AddType application/x-httpd-php .css
</VirtualHost>

ويمكن أيضا أن يتم ذلك في ملف htaccess الخاص بك.

وبدلا من ذلك، يمكنك جعل وجود صلة مثل

<link rel='stylesheet' type='text/css' href='css/style.php?pg_id=43&post=62'>

وووضع

<?php header("Content-type: text/css"); ?>

وكما هو السطر الأول.

ولقد اعتبرت أبدا تقنية فينيسيوس "لكني لا شك في أن لديها مجموعة من المزايا والعيوب للغاية.

وPS - أحيانا GET المتغيرات الاستخدامات لأغراض التخزين المؤقت (أو في الواقع لمنع التخزين المؤقت بإلحاق الطابع الزمني يونكس الحالي إلى رابط المغلق مع بي مثل

<link href="style.css?<?php echo time()" type="text/css" rel="stylesheet" />

نصائح أخرى

وطلب ل. المغلق أو ملف شبيبة يمكن إعادة توجيه إلى النصي PHP باستخدام، على سبيل المثال، هتكس (في Apache)، لذلك حتى لو كان سمة src هي "style.css"، هو في الواقع PHP السيناريو الذي يستجيب للمستخدم.

ويتم مؤقتا CSS وملفات جافا سكريبت، أنا لا أوصي خدمة مختلفة أوراق الأنماط شبيبة الملفات / إلا انهم> 200KB أو حتى في الحجم.

ونعم، يمكنك الرجوع أي صفحة من جانب الخادم مع المعلمات (فب أو أيا كان التمديد) طالما تقوم بإرجاع الصحيح نوع المحتوى لهذا الملف.

وSidenote: عادة إذا كان لديك المعلمات ويخدمون الملفات ديناميكيا بهذه الطريقة، وأعتقد أنهم لن يكون مؤقتا تلقائيا ما لم تقم إعداده للقيام بذلك

.

ومثال بسيط:

<link rel="stylesheet" type="text/css" href="/css.php?color=wide-red">

<?php
header('Content-Type', 'text/css; charset=utf-8');
$colorScheme = (string)$_GET['color'];

switch ( $colorScheme ) {
    case 'wide-red':
       $bgColor = 'c0c0c0';
       $fgColor = 'ffffff';
       $width = '1280px';
    break;

    case 'normal-gray':
       $bgColor = '333333';
       $fgColor = 'ffffff';
       $width = '960px';
    }
    break;

}
?>
body { 
   background:<?php echo $bgColor;?>;
   color:<?php echo $fgColor;?>;
   width:<?php echo $width;?>;
}

ويمكنك استخدام الصدى، يمكنك استخدام نظام النموذجيه، يمكنك سحب في ملفات المغلق أخرى مع file_get_contents، الشيء الرئيسي هو أنت في حاجة الى ارسال اليمين نوع المحتوى، والاستيلاء على المعلمات الصحيحة ويكون لها احتياطي الافتراضية إذا لم المعلمات وترد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top