Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP特殊符号链接用法_Php_Linux_Symlink - Fatal编程技术网

PHP特殊符号链接用法

PHP特殊符号链接用法,php,linux,symlink,Php,Linux,Symlink,我有以下测试结构: /www/index.php <?php require_once(dirname(__FILE__).'/linked/linked.php'); PHP、Apache或Linux是否有任何方法/技术可以使symlink的行为与普通的文件系统文件夹/文件不一样? 我需要我的示例返回以下输出: /www/linked/linked.php 但在现实中,它仍然是一个符号链接的文件,最初位于其原始文件夹中 更新1 我们正在与版本控制系统合作,我们希望将签出的文件夹保存在

我有以下测试结构:

/www/index.php

<?php
require_once(dirname(__FILE__).'/linked/linked.php');
PHP、Apache或Linux是否有任何方法/技术可以使symlink的行为与普通的文件系统文件夹/文件不一样? 我需要我的示例返回以下输出:

/www/linked/linked.php
但在现实中,它仍然是一个符号链接的文件,最初位于其原始文件夹中

更新1


我们正在与版本控制系统合作,我们希望将签出的文件夹保存在一个全局文件夹中,我们希望将每个文件夹符号链接到实际平台Joomla或WordPress等中的正确路径。。。。它将允许我们只从一个文件夹进行更新和提交,但仍然可以通过一次更新刷新每个平台。在我们不使用文件或目录或任何符号链接可能混淆的相关内容之前,这可能会起作用。

这是一种痛苦。正如所解释的那样:

文件的完整路径和文件名。如果在包含中使用,则 返回包含的文件的名称。自PHP4.0.2以来,文件 始终包含符号链接已解析的绝对路径,而 旧版本在某些情况下包含相对路径

这是一种痛苦。这就是我决定最好显式设置基本路径的原因。因此,在您的情况下,您可以设置:

$BASE_PATH = '/www/';
然后你的要求是这样的:

require($BASE_PATH . '/linked/linked.php');

这与您的类似,建议使用$\u SERVER['SCRIPT\u NAME'],但根据我的经验,由于一些奇怪的原因,这种设置可能会在服务器之间发生根本性的变化。这就是我在编写代码时默认使用$BASE_PATH方法的原因。您只需设置一次,不用担心。

我们正在使用版本控制系统,我们希望将签出的文件夹保存在一个全局文件夹中,并且我们希望将每个文件夹符号链接到实际平台Joomla或WordPress等中的正确路径。。。。它将允许我们只从一个文件夹进行更新和提交,但仍然可以通过一次更新刷新每个平台。在我们不使用文件或目录或任何符号链接可能混淆的相关内容之前,这可能会起作用。@RolandSoós首先,我将在原始问题中添加您刚才描述的细节,因为它将更好地阐明您的总体需求。你用Capistrano吗?还是类似的?还是手动进行符号链接?我能够解决这样的版本控制路径问题的唯一方法是让Capistrano将{current_release}路径回送到一个名为current_path的文件中。然后在PHP端,一个配置文件将读取当前的_路径,并将其用作$BASE_路径,类似于我的示例。谢谢,我已经更新了我的问题。不,我们不使用capistrano。此外,我们不是符号链接,因为它不为我们工作。这就是为什么我在寻找解决方案:如果我能解决符号链接问题,那么我们将走上一条很好的道路。。。但是还没有运气。
$BASE_PATH = '/www/';
require($BASE_PATH . '/linked/linked.php');