Php 使用zend framework将文件写入/public

Php 使用zend framework将文件写入/public,php,zend-framework,Php,Zend Framework,我正在尝试为我的站点创建一个动态站点地图,它在Zend上运行 我希望我的一个控制器能够写入/public目录,但我不知道如何将文件写入正确的位置 我的相关目录结构如下所示: .申请/ …模块/ ……我的单元/ 控制者/ ……SitemapController.php .图书馆/ .公众/ 在Zend中,这是指向public/directory的一种简单方法,而不必编写类似于“file://../../../public/“每次?Zend framework引导定义了一个名为应用程序路径的常量遵循

我正在尝试为我的站点创建一个动态站点地图,它在Zend上运行

我希望我的一个控制器能够写入/public目录,但我不知道如何将文件写入正确的位置

我的相关目录结构如下所示:

.申请/

…模块/

……我的单元/

控制者/

……SitemapController.php

.图书馆/

.公众/


在Zend中,这是指向public/directory的一种简单方法,而不必编写类似于“file://../../../public/“每次?

Zend framework引导定义了一个名为应用程序路径的常量遵循该准则,您可以初始化另一个指向公共路径的常量:

define('PUBLIC_PATH', APPLICATION_PATH . '/../public/');

这将是无处不在的。确保Web服务器对要在其中存储文件的文件夹具有写入权限。

Zend framework引导定义了一个名为应用程序路径的常量。遵循该准则,您可以初始化指向公共路径的另一个常量:

define('PUBLIC_PATH', APPLICATION_PATH . '/../public/');

这将是无处不在的。确保web服务器对要在其中存储文件的文件夹具有写入权限。

您可以使用
$\u SERVER['DOCUMENT\u ROOT']
但您不应该这样做--为了安全起见,运行web服务器的进程不应该写入public dir。有很多方法可以解决这个问题。您可以将文件写入文档根目录之外的其他独立目录,然后符号链接到它。或者只是在应用程序配置中创建一个路由,以便每次都能动态生成文件。

您可以使用
$\u SERVER['DOCUMENT\u ROOT']
但您不应该这样做——为了安全起见,运行web服务器的进程不应该写入public dir。有很多方法可以解决这个问题。您可以将文件写入文档根目录之外的其他独立目录,然后符号链接到它。或者只是在应用程序配置中创建一个路由,以便每次动态生成文件。

您可能希望使用目录分隔符,而不是硬编码可以引用的斜杠。@marcelog完全不需要使用目录分隔符:正确,感谢您指出这一点。但这只是因为现在windows接受斜杠作为分隔符。读取路径时仍然需要该常量,但写入路径时可以跳过该常量–您可能希望使用目录分隔符,而不是硬编码可以引用的斜杠。@marcelog完全不需要使用目录分隔符:正确,感谢您指出这一点。但这只是因为现在windows接受斜杠作为分隔符。读取路径时仍然需要该常量,但是在编写它们时可以跳过——谁说运行PHP的用户与Web服务器运行的用户是同一个用户?没关系——如果您没有运行嵌入式PHP,那么PHP进程所有者仍然不应该编写文档根。谁说运行PHP的用户与Web服务器运行的用户是同一个用户?没有关系要紧的是——如果你没有运行嵌入式PHP,那么PHP进程所有者仍然不应该写文档根。你可以直接用Zend btw创建一个动态sitemap.xml文件。此外,如果你想动态创建它,你不必将它存储到公共文件夹中。我希望您不会将HTML文件写入公用文件夹!您可以直接使用Zend btw创建动态sitemap.xml文件。此外,如果您希望动态创建该文件,则不必将其存储到公用文件夹中。我希望您不会将HTML文件写入公用文件夹!