如何让 PHP、符号链接和 __FILE__ 很好地协同工作?

2024-05-07

在本地主机上。我有以下目录结构:

/share/www/trunk/wp-content/plugins/otherfolders

/share/www/portfolio/wp-content/symlink

Where symlink是一个符号链接/trunk/.../plugins/。基本上,这是因为我需要测试多个 WordPress 安装并设置它们,但我不想移动插件并将它们复制粘贴到各处。

但是,有时我需要爬行目录树以包含配置文件:

 $root = dirname(dirname(dirname(dirname(__FILE__))));
      if (file_exists($root.'/wp-load.php')) {
          // WP 2.6
          require_once($root.'/wp-load.php');
      }

该文件夹始终解析为:

/share/www/trunk

即使插件正在执行并包含在

/share/www/portfolio/.

PHP 中是否可以将文件包含在share/www/portfolio目录从在符号链接中执行的脚本到/share/www/trunk/.../plugins目录?

虽然这个问题只发生在我的测试服务器上,但我希望有一个安全可分发的解决方案,以便爬上额外的一层不是一个选择.


我在你的代码中看到的问题是__FILE__自动解析符号链接。

从 PHP 手册魔法常数 http://php.net/manual/en/language.constants.predefined.php

...从 PHP 4.0.2 开始,__FILE__始终包含已解析符号链接的绝对路径...

您可以尝试使用$_SERVER["SCRIPT_FILENAME"]反而。

$root = realpath(dirname(dirname(dirname(dirname($_SERVER["SCRIPT_FILENAME"])))));
  if (file_exists($root.'/wp-load.php')) {
      // WP 2.6
      require_once($root.'/wp-load.php');
  }

请注意,我添加了realpath()函数到根目录。根据您的设置,您可能需要也可能不需要它。

编辑:使用$_SERVER["SCRIPT_FILENAME"]代替$_SERVER["PHP_SELF"]为文件系统路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 PHP、符号链接和 __FILE__ 很好地协同工作? 的相关文章

  • 研究缓冲区溢出时应该使用哪些版本的 GCC 或标志?

    最近 作为计算机工程专业的本科生 我一直在研究缓冲区溢出 出于兴趣 我开始研究缓冲区溢出 但在尝试在我的计算机上用 GCC 4 9 1 在 Debian Jessie 中 编译的我自己的 C 程序中实现它们时遇到了困难 我听说较新的编译器中
  • 如何使用 Laravel Eloquent 创建多个Where子句查询?

    我正在使用 Laravel Eloquent 查询构建器 并且我有一个查询 我想要一个WHERE多个条件的子句 它可以工作 但并不优雅 Example results User where this 1 gt where that 1 gt
  • laravel 中的 jwt 中的“无法从请求中解析令牌”

    我面临着 无法从请求中解析令牌 Laravel 中的 JWT 错误 我在 localhost Windows 7 中的 Xampp 中尝试了相同的代码 它正在工作 但在服务器上它不起作用 我已经通过了 授权 标头中的令牌也发生了变化 hta
  • 从前端更改记录顺序

    我在编写下一个功能时遇到问题 我希望用户能够重新排列记录并更改 display order 值 我使用 Jquery UI 的可拖放功能来促进这一点 我可以看到如何简单地交换 display order 值 但我想为一条记录设置一个显示顺序
  • 为什么 XRecordDisableContext() 不起作用?

    void Callback XPointer XRecordInterceptData pRecord std cout lt lt my logs n int main if auto const pDisplay XOpenDispla
  • 在运行时检查 GCC 版本

    我需要找出 C 程序执行过程中 运行时 可用的 系统中安装的 GCC 版本 主要版本和次要版本 意思是 以编程方式提取可用 gcc 的版本 就像我在 shell 中输入 gcc version 一样 但在 c 程序中 The GNUC an
  • PHP表单提交后如何显示成功消息?

    这是代码 我想要这样 表单提交 gt page2 php gt 重定向 gt page1 php 这是消息 弹出窗口或其他内容 page1 php
  • 创建一个基于简单文本文件的搜索引擎

    我需要尽快创建一个基于简单文本文件的搜索引擎 使用 PHP 基本上它必须读取目录中的文件 删除停止词和无用词 为每个剩余的有用词及其在每个文档中出现的次数建立索引 我猜这个的伪代码是 for each file in directory r
  • 如果我们的应用程序位于反向代理后面,如何获取访问者的真实 IP?

    我正在使用 Siteground 的基于 nginx 的动态缓存反向代理 它使用它来服务请求和静态文件 我想获取访问者的 IP 地址 但我无法获取任何内容 甚至没有显示任何内容print r SERVER 这是我尝试过的 hostname
  • Joomla getUser() 不显示更新的用户数据

    下面的代码允许我在用户的 Joomla 个人资料的个人资料页面中显示用户名 鉴于我已经覆盖了模板以获得我想要的外观和感觉 user JFactory getUser if user gt guest echo You are logged
  • 如何在文件中搜索多行模式?

    我需要找到包含特定字符串模式的所有文件 我想到的第一个解决方案是使用find管道与xargs grep find iname py xargs grep e YOUR PATTERN 但是 如果我需要查找跨越多行的模式 我就会陷入困境 因为
  • 来源和出口有什么区别?

    我正在编写一个 shell 脚本 以读取具有 key value 对的文件并将这些变量设置为环境变量 但我有疑问 如果我这样做source file txt是否会将该文件中定义的变量设置为环境变量 或者我应该逐行读取文件并使用导出命令设置它
  • 带有列标题的php数组到csv的转换

    我想将数组转换为 csv 我能够将关联数组转换为 csv 但无法获取标题 我想要动态地将数字类型日期作为标题 下面是我转换的数组 Array 0 gt Array NUMBER gt 67 TYPE gt Other DATE gt 3 3
  • 跨 CPU 内核的 rdtsc 精度

    我从一个线程发送网络数据包 并在运行于不同 CPU 核心上的第二个线程上接收回复 我的流程测量每个数据包发送和接收之间的时间 类似于 ping 我使用 rdtsc 来获得高分辨率 低开销的计时 这是我的实现所需要的 所有测量结果看起来都很可
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • 使用 jquery 和 php 测试表单输入是否为 1 或 2 位整数

    我有一个表单 其中有五个字段全部设置为 maxlength 2 基本上 我希望唯一可以输入的值是一位或两位整数 因为在将值存储在数据库中之前对这些字段执行计算 是否有任何 jquery 不允许用户输入不是整数的值 另外 用 jquery 和
  • 显示产品中的类别名称和类别 ID - Laravel

    我已经找到了这个答案 但它对我不起作用 Laravel 按 id 显示类别 https stackoverflow com questions 39222584 laravel displaying categories by id 我无法
  • vagrant box速度慢,如何改进?

    我们已经为我们的开发盒构建了一个 vagrant box 但我们面临着一些延迟问题 Issues Assetic 手表速度很慢 app dev php 中的整体应用程序访问速度很慢 在 vagrant box 的共享文件夹中使用 查找 命令
  • MySQL 的 TEXT 类型的 Oracle 等效项

    Oracle 是否有与 MySQL 等效的列类型TEXT type 如果不是 那么通常如何存储较大的文本块 BLOB varchar 32767 如果重要的话 它是通过 PHP 访问 Oracle 10 历史背景是非常受欢迎的 Oracle
  • Laravel 5 Socialite - cURL 错误 77:设置证书验证位置时出错

    我正在 Laravel 5 中使用社交名流来设置 facebook 登录 我仔细按照说明进行操作 直到出现以下错误 cURL error 60 SSL certificate problem unable to get local issu

随机推荐

  • FreeMM 与 ShareMem

    我们有很多用 delphi 和 c builder 编写的 dll 库 并使用 sharemem 和 borlndmm dll 3d party 库中的对齐问题迫使我们转向 delphi 2007 中的新内存管理器 有人可以帮我解释一下 共
  • Linux 上的 OpenCL 编译

    我是 OpenCL 的新手 从昨天开始 我尝试使用 OpenCL 进行并行编程 而不是使用我更熟悉且以前体验过的 CUDA 现在我有 NVIDIA GTX 580 GPU Ubuntu Linux 12 04 操作系统和 CUDA SDK
  • 比较java中的数组和索引位置[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在一次 java 面试中 有人问我如
  • JS - document.getelementbysrc?

    是否可以从 src 属性的值获取元素 没有 DOM 方法可以按属性过滤元素 您需要遍历特定标签的所有元素并过滤掉那些匹配的元素src value function getElementsBySrc srcValue var nodes va
  • pandas:分割字符串和计数值? [复制]

    这个问题在这里已经有答案了 我有一个 pandas 数据集 其中有一列是逗号分隔的字符串 例如1 2 3 10 data id 1 score 9 topics 11 22 30 id 2 score 7 topics 11 18 30 i
  • 如何对 int[] 数组求和[重复]

    这个问题在这里已经有答案了 给定一个数组A of 10 ints 初始化一个名为的局部变量sum并使用循环查找数组中所有数字的总和A 这是我提交的答案 sum 0 while A lt 10 sum sum A 我在这个问题上没有得到任何分
  • 鼠标悬停时 WPF 按钮背景透明度

    我正在尝试更改某些按钮上的鼠标悬停效果 因为它们设置了不同的自定义背景颜色 因此当前将相同浅蓝色的鼠标悬停方案不太适合 我目前得到了这个
  • MVVM 消息传递与 RaisePropertyChanged

    MVVM 消息传递和 RaisePropertyChanged 之间有什么区别 当视图模型 B 中的属性发生更改时 我尝试在视图模型 A 中运行函数 哪种方法更适合使用 消息传递还是 RaisePropertyChanged 广播 谢谢 尼
  • 如何从替换特殊字符的字符串创建 URL?

    我正在尝试从 iframe 内部发出 jsonp 请求 由于某种原因 它似乎不起作用 看到这个question https stackoverflow com questions 20422125 no callback in jsonp
  • Android Socket + ObjectOutputStream 无法正常工作

    我正在开发一个客户端 服务器程序 其中客户端是 Android 设备 服务器有一个从输入流读取对象的侦听器类 我为另一台计算机创建了一个客户端软件 该软件通过本地网络发送一个小对象 计算机到计算机工作得很好 我读取了该对象并打印了内容 但是
  • mongodb 中的 $size 与条件

    我正在使用聚合从两个集合中获取值 一个是文件夹 另一个是检查 我正在获取所有数据 但检查计数为 0 我的代码 mongo folder aggregate lookup from inspections localField id fore
  • UIWebview 中的 NSString

    我有一个NSString和我的项目中的 webView iPhone 的 Objective C 我称之为index html在 webView 及其内部我插入了我的脚本 javascript 如何在脚本中将 NSString 作为 var
  • Servlet 过滤器不适用于容器管理的登录页面

    我正在使用一个Filter在我的所有页面中插入反点击劫持标头 这可以正常工作 但 JBoss EAP 6 3 容器管理的登录页面除外 这是拥有该功能的更重要的页面之一 登录页面根本不会调用过滤器 该页面由http localhost App
  • git推送错误“致命:无法找到'https'的远程帮助程序”

    我添加了远程源 例如 git remote add origin https github com username repo git 当我推送 git 存储库时 出现以下错误 git push u origin master fatal
  • 在 Morphia 中,我如何更新 ArrayList 中的一个嵌入对象

    使用 Mongodb 与 Morphia 确实很陌生 并且看到了许多如何执行此操作的高级答案 如果可能的话我想做简单的并且我有这个 Embedded对象称为 fileObjects其中包含Files对象 我无法更新里面的字段Files 我只
  • 是否有相当于 Windows 8 / winrt / Metro 风格的 wp7 的marketreviewtask?

    我浏览了 MSDN 上的 Store API 和 Launchers 集合 似乎找不到可以在 Marketplace 应用程序中打开应用程序以供用户评分的任务或启动器 正如我们在 Windows Phone 7 中可以轻松做到的那样 htt
  • 当数据未定义或为空时如何使用 Lodash

    在我的应用程序中 如果来自服务的数据未定义或为 null 我的 html 将无法加载 并且会收到 数据未定义 错误 所以我尝试使用lodash 但不知道如何使用它 在我下面的 ts 文件中 this PartService GetDataV
  • 使用 Jetpack Compose 中的导航抽屉在可组合项之间导航

    我正在尝试在 jetpack compose 中为抽屉图标 文本字段设置导航 但不确定如何正确执行 如何设置导航 以便每当我单击其中一个图标时 我都会导航到该可组合屏幕 这是目前我的主抽屉布局 Composable fun MainDraw
  • Android Studio - 提供的 javaHome 不是有效的文件夹

    我决定将我的 JDK 更新为 Java 8 并安装到默认位置C Program Files Java jdk1 8 0 with a jre子目录 我不确定 Android Studio 如何确定 JDK 位置 因此我决定启动它并查看 我收
  • 如何让 PHP、符号链接和 __FILE__ 很好地协同工作?

    在本地主机上 我有以下目录结构 share www trunk wp content plugins otherfolders share www portfolio wp content symlink Where symlink是一个符