如何使用PHP创建动态CSS和JavaScript(使用PHP)。 这需要完成,因为不同的页面有时会有不同的元素集,所以每次包装和发送一个大的CSS / JS都会有点过分。 为什么许多网站都有这样的链接标签:

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

CSS如何了解GET参数?

由于这可能涉及URL重写或使用标题功能,请提供简短的例子

有帮助吗?

解决方案

所以,你可以采取一些不同的方法。首先,如果您可以访问apache的虚拟主机文件,则可以将CSS设置为由php解释器读取。我从来没有这样做,并不会推荐它,但一个例子是:

<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"); ?>

作为第一行。

我从未考虑过Vinicius的技术,但我不怀疑它也有自己的优点和缺点。

PS - 有时GET变量用于缓存目的(或实际上是通过将当前unix时间戳附加到css链接来防止缓存,如

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

其他提示

对.css或.js文件的请求可以使用例如.htaccess(在Apache中)重定向到PHP脚本,因此即使src属性是“style.css”,它实际上也是响应用户的PHP脚本。

您的CSS和Javascript文件已缓存,我不建议提供不同的样式表/ js文件,除非它们的大小> 200KB左右。

是的,您可以引用任何带有参数(.php或任何扩展名)的服务器端页面,只要它返回该文件的正确Content-Type即可。

旁注:通常,如果您有参数并以这种方式动态提供文件,我相信除非您将其设置为自动缓存,否则它们不会自动缓存。

简单示例:

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

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

您的CSS和Javascript文件已缓存,我不建议提供不同的样式表/ js文件,除非它们的大小> 200KB左右。

是的,您可以引用任何带有参数(.php或任何扩展名)的服务器端页面,只要它返回该文件的正确Content-Type即可。

旁注:通常,如果您有参数并以这种方式动态提供文件,我相信除非您将其设置为自动缓存,否则它们不会自动缓存。

简单示例:

<*>

你可以使用echo,你可以使用模板系统,你可以用file_get_contents拉入其他css文件,关键是你需要发送正确的Content-Type,抓取正确的参数并且如果没有参数则有默认的回退给出了。

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;?>; }

你可以使用echo,你可以使用模板系统,你可以用file_get_contents拉入其他css文件,关键是你需要发送正确的Content-Type,抓取正确的参数并且如果没有参数则有默认的回退给出了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top