Права доступа к файлу PHP - создание файла - PullRequest
1 голос
/ 31 декабря 2011

Я нахожусь в процессе создания плагина Wordpress для слайд-шоу (хотя на самом деле это не вопрос Wordpress).При всех своих различных настройках он создает CSS-файл через PHP, который используется для стилизации слайд-шоу.

CSS-файл создается из всех различных переменных стиля, которые пользователь сохранил в базе данных, и, следовательно, необходимостьдинамически создавайте его.

Проблема в том, что некоторые хостинговые компании (или хостинг с общим доступом) вызывают проблемы, когда PHP пытается сохранить созданный файл.Обычно это проблемы с правами доступа к файлам.Остановка этого файла от сохранения результатов в слайд-шоу, которые не отображаются правильно и работают неправильно.

Могу ли я что-нибудь сделать с помощью PHP в качестве альтернативы для пользователей с такими проблемами разрешения файлов?Насколько мне известно, вы можете изменять права доступа к файлам и владение файлами через PHP, но лично я никогда не делал этого раньше, и я не был бы уверен в правильности этого пути, но охватывал бы как можно больше различных сценариев.

Для многих пользователей это просто случай информирования их о том, как изменить соответствующие права доступа к файлам, но для нечетных немногих это полностью за их пределами, и я не могу войти в систему там по FTP и сделатьэто для них (часто потому, что они даже не знают, что такое FTP).

Кто-нибудь может указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 31 декабря 2011

Ваша лучшая ставка может быть:

// 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. Вероятно, однако, такой подход динамического генерирования его каждый раз не приведет к узким местам (в любом случае профиль , если вы обеспокоены )

0 голосов
/ 31 декабря 2011

Полагаю, у вас может быть каталог, в котором вы будете хранить свои файлы css и chmod в 777, например, в php:

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

Единственная проблема, которую я вижу здесь, это то, что компаниякоторый запрещает вам доступ к chmod вашим файлам, не так уж глупо оставлять вашему php такое разрешение ... Итак, почему бы вам просто не иметь своего рода файл-шлюз, который будет динамически извлекать значения css из БД, формируя действительныеВывод css и передать его пользователю?

...