2011-12-31 7 views
1

슬라이드 쇼 Wordpress 플러그인을 만드는 중입니다. (실제로 이것은 Wordpress 질문이 아니지만). 모든 다양한 설정을 통해 PHP를 통해 슬라이드 쇼의 스타일을 지정하는 데 사용되는 CSS 파일을 만듭니다.PHP 파일 사용 권한 - 파일 만들기

CSS 파일은 사용자가 데이터베이스에 저장 한 모든 다른 스타일 변수로 만들어 지므로 동적으로 만들 필요가 있습니다.

문제는 일부 호스팅 업체 (또는 공유 호스팅)가 PHP가 생성 된 파일을 저장하려고 할 때 문제가 발생한다는 것입니다. 일반적으로 파일 사용 권한 문제입니다. 이 파일을 저장하지 않으면 슬라이드 쇼가 제대로 나타나지 않고 오작동합니다.

이러한 파일 권한 문제가있는 사용자를 대신하여 PHP를 통해 수행 할 수있는 작업이 있습니까? 내가 아는 한 PHP를 통해 파일 사용 권한 및 파일 소유권을 수정할 수 있지만 필자는 이전에 직접 해본 적이 없으며 가능한 많은 다양한 시나리오를 다루는 올바른 방법에 대해서는 확신하지 못합니다.

많은 사용자에게 적절한 파일 사용 권한을 변경하는 방법을 알려주는 경우 일 뿐이지 만 이상한 경우에는 완전히 넘어서고 FTP에 로그인하여 수행 할 수 없습니다. 그들을 위해 (종종 FTP가 무엇인지 모르기 때문에).

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

+0

[chmod()] (http : //www.php .net/chmod)를 사용하여 파일 권한 설정을 변경하십시오. 누구나 액세스하기에는 너무 낮은 수준에서 생성하고 가용성을 높여야 할 수도 있습니다. – Duniyadnd

+0

업로드 디렉토리에 파일을 쓸 수 없습니까? WP 설치에서 사용 권한을 이미 설정해야하는 곳? –

+0

@Duniyadnd - 대다수의 시간 동안 사용자가 문제를 겪지는 않지만 때로는 일부 문제가 있습니다. 파일 생성을 중지시키는 호스트는 일반적으로 chmod() 함수도 차단합니다. 이 기능을 사용할 수없는 사용자를 위해 수행 할 수있는 또 다른 조치가 있는지 궁금합니다. –

답변

0

나는 당신이 당신의 CSS 파일 (들)을 보유 할있는 디렉토리가있을 것 같아요 및 PHP는이 같은 777로 chmod를 :

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

내가 여기에 볼 수있는 유일한 문제는, 회사 것을 당신이 당신의 파일을 chmod에 접근하는 것을 허락하지 않습니다. 당신의 PHP를 그 허락없이 버려두는 것이 아닙니다. 그래서, DB에서 css 값을 동적으로 잡아낼 올바른 종류의 'gateway'파일을 만들면 어떨까요? 출력 및 사용자에게 제공?

+0

정확히 무엇을 의미합니까? PHP가 동적 CSS 파일로 작동한다는 것을 의미합니까? 나는 이걸 들여다 보았지만, Wordpress 기능을 PHP 파일에로드해야한다. –

+0

그래, 나는 동적 인 PHP CSS 파일을 의미. 무슨 말을하는 겁니까? PHP 파일에 wp 기능로드? –

+0

워드 프레스 데이터베이스 값에 접근하는 것이 워드 프레스 기능을 통해 가장 쉽습니다. 워드 프레스 파일을로드해야합니다. 추가 서버로드가 많이 발생합니다. –

0

가장 좋은 방법이 될 수있다 : 스타일 시트로 PHP 파일을

// 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; 

그리고 점 :

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

이 CSS 파일에 덤핑의 "캐시"기능을 포기합니다 동안을 확실히 Wordpress를 통해 사용할 수있는 캐싱 지원을 활용할 수 있습니다. 그렇지만 매번 동적으로 생성하는 이러한 접근 방식은 병목 현상을 일으키지 않습니다 (걱정되는 경우 프로필)

+0

값을 얻으려는 이러한 사용자 정의 함수가 있습니까? –

+0

@MatthewRuddy - 예; 귀하의 기능/기능을 대체하십시오. 기본적으로 CSS 파일을 작성하기 위해해야 ​​할 일은 무엇이든하십시오. 파일을 파일에 저장하고 템플릿을 대상으로하는 대신 템플릿은 PHP 스크립트를 CSS 리소스로 지정합니다. CSS 데이터를 파일에 덤프하는 대신 다시 출력합니다. 앞에서 언급했듯이이 방법은 파일에 덤프하는 고유의 캐싱 기능을 무효로하지만 파일 시스템 액세스 문제는 이러한 방식으로 해결됩니다. – Dan