-1

这是一个非常开放且可能很简单的问题,对此我提前道歉。

我正在尝试创建一个包含链接(或按钮或其他任何内容)的网页,该链接将创建另一个网页(使用服务器安装的程序,该程序在调用时生成该页面)。问题是,服务器将其解释为用户试图写入目录,而用户没有我的树的写访问权限。创建页面的函数也可以输出到 stddout,但我正在寻找某种方法让该函数生成页面并将其加载到浏览器中,同时拒绝用户(以及网页)对目录的写入访问权限。

任何建议将不胜感激。作为参考,我正在使用的程序称为 Pygments,每当单击按钮时,我都会尝试生成颜色编码的网页。Pygments 默认写入 stddout,但实际上通常用于生成 HTML 文件,然后加载该文件。

4

2 回答 2

0

http://php.about.com/od/advancedphp/ss/file_write_php.htm

如果文件已经存在,您必须对文件进行 CHMOD 777。PHP 自己写入文件夹不应该有任何特殊问题。

于 2013-05-31T20:08:03.083 回答
0

有一个生成页面的脚本,以及一个 .htaccess 文件,它将对不存在页面的请求定向到所述脚本。例如:您的文件夹如下所示:

myfolder/
  .htaccess
  index.php

.ht 访问:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f #this rule skips the rewrite if the requested file actually exists
RewriteCond %{REQUEST_FILENAME} !-d #this rule skips the rewrite if the requested directory actually exists
RewriteRule ^(.*)$ index.php?req=$1 [L,QSA]

索引.php

<?php
if( !isset($_GET['req']) ) {
  die("no page requested.");
  // or whatever you want the default to be...
}

switch($_POST['req']) {
  case 'dogs.html':
    echo "dogs!";
    break;
  case 'cats.html':
    echo "cats!";
    break;
  default:
    echo "I don't know about that...";
}

因此您可以请求http://mysite.com/myfolder/cats.html而无需实际将文件写入该目录。

于 2013-05-31T20:10:55.770 回答