有没有一种方法可以在不使用“ ../”的情况下将文件包含在多个目录中

时间:2019-07-17 06:32:36

标签: php

我在服务器上设置了几个目录。 我有这个文件,需要将php文件包含3个目录。

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project eureka-client-service-1: Compilation failure: Compilation failure: [ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[16,65] package org.balaji.java.jee.pcf.eureka.client.data.controller does not exist [ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[17,61] package org.balaji.java.jee.pcf.eureka.client.data.entity does not exist [ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[27,5] cannot find symbol [ERROR] symbol: class OrganizationDataFixtureAdapter [ERROR] location: class org.balaji.java.jee.pcf.eureka.client.service_1.boundary.EurekaClientEmployeesServiceEndpoint [ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[42,32] cannot find symbol [ERROR] symbol: class Employee [ERROR] location: class org.balaji.java.jee.pcf.eureka.client.service_1.boundary.EurekaClientEmployeesServiceEndpoint 可以很好地工作,但是如果您多次在不同的功能上执行操作,则很难计算一个文件有多少个目录。

是否可以通过指定整个路径而不是使用“ library(tidyr) library(dplyr) df <- data.frame(target=7.4, week3=5.0, week4=6.9, week5=7.5) df <- df %>% gather(key=week, value=weight, starts_with("week")) %>% mutate(achieved = weight > target) %>% print() #> target week weight achieved #> 1 7.4 week3 5.0 FALSE #> 2 7.4 week4 6.9 FALSE #> 3 7.4 week5 7.5 TRUE df$week[df$achieved] #> [1] "week5" ”来包含文件

例如。 include "../../../folder/neededThis.php"

1 个答案:

答案 0 :(得分:0)

您可以使用$_SERVER["DOCUMENT_ROOT"],因为这将始终返回您正在处理的内容的根文件夹。一个示例实现:

<?php
 $file = $_SERVER["DOCUMENT_ROOT"]."path/to/my/folder/needThis.php";
 echo "#LOC: ".$file; //output where is the file
 include $file; 
 #rest of code....
?>

它会返回如下内容:

#LOC: server/path/to/my/folder/needThis.php

但是,如果文件移至服务器的子域,则需要调整受影响的文件,一种规避此问题的方法是使用getcwd()

例如:如果您的文件被移至子域(例如:server/subb),则上述脚本将返回如下内容:

#LOC: server/path/to/my/folder/needThis.php
Warning: include(server/path/to/my/folder/needThis.php): failed to open stream: No such file or directory in server/subb/index.php on line 4

如果我们将$_SERVER["DOCUMENT_ROOT"]替换为getcwd(),该问题将不会发生。

请注意,我不知道使用此方法会有什么安全隐患。