PHP文件权限 - 创建文件

时间:2011-12-31 00:33:53

标签: php css file permissions

我正在创建一个幻灯片Wordpress插件(虽然这不是一个真正的Wordpress问题)。通过它的各种设置,它通过PHP创建一个CSS文件,用于设置幻灯片的样式。

CSS文件是根据用户保存到数据库的所有不同样式变量创建的,因此需要动态创建一个。

问题是,当PHP尝试保存创建的文件时,某些托管公司(或共享托管)会导致问题。通常这些是文件权限问题。停止保存此文件会导致幻灯片显示无法正确显示并出现故障。

对于有此类文件权限问题的用户,我可以通过PHP做些什么吗?据我所知,你可以通过PHP修改文件权限和文件所有权,但我个人以前从未这样做过,并且不能确定正确的方法,尽可能多地涵盖它。< / p>

对于很多用户来说,这只是告诉他们如何更改相应文件权限的情况,但对于奇怪的少数人来说,这完全超出了他们的范围,而且我无法登录FTP并执行此操作他们(通常是因为他们甚至不知道什么是FTP)。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

我想你可以有一个目录,你可以在其中保存你的css文件,并在php中将它chmod到777:

<?php 
    chmod(dirname(__FILE__) . '/stylesheets', 0777); 
?>

我在这里看到的唯一问题是,一家公司否认你访问chmod你的文件并不是那么愚蠢的离开你的php那个权限......所以,为什么你不只是有一种'门户' - 文件将从DB动态获取css值,形成有效的css输出并将其提供给用户?

答案 1 :(得分:0)

您最好的选择可能是:

// Get your values however
$css_values = $database->get_css_values();

// Generate your CSS stylesheet string
$css_string = css_values_to_string($css_values);

// Dump it directly
header('Content-type: text/css');
echo $css_string;

并将PHP文件指向样式表:

<link rel="stylesheet" type="text/css" href="path/to/generator.php" />

虽然这放弃了转储到CSS文件的“缓存”功能,但肯定可以利用Wordpress提供的任何缓存支持。不过,这种每次动态生成它的方法都不会导致瓶颈(无论如何, profile,如果你担心的话