Php 为什么$#u服务器[';HTTP#u主机';]的计算结果未达到预期值?

Php 为什么$#u服务器[';HTTP#u主机';]的计算结果未达到预期值?,php,Php,我正在开发一个Wordpress插件,我在$\u服务器['HTTP\u HOST']上遇到了一些问题 这是指向完全不正确的东西。我从Wordpress安装中的插件目录调用它,它会出现http://www.richmindonline.com/testenvironment/wp-admin/www.richmindonline.com 我猜正确的路径应该是http://www.richmindonline.com/testenvironment。有没有可能在我的插件文件中删减或以某种方式创建一个

我正在开发一个Wordpress插件,我在
$\u服务器['HTTP\u HOST']
上遇到了一些问题

这是指向完全不正确的东西。我从Wordpress安装中的插件目录调用它,它会出现
http://www.richmindonline.com/testenvironment/wp-admin/www.richmindonline.com

我猜正确的路径应该是
http://www.richmindonline.com/testenvironment
。有没有可能在我的插件文件中删减或以某种方式创建一个re direct

我想我不需要为此发布代码。请让我知道,如果你想让我张贴的代码的一部分

更新

这是安装根目录中的.htaccess文件,如果有帮助的话

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /testenvironment/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /testenvironment/index.php [L]
</IfModule>

# END WordPress
#开始WordPress
重新启动发动机
重写基础/测试环境/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/testenvironment/index.php[L]
#结束WordPress

嗯,据我所知,
HTTP\u主机是由客户端提供的


您可以使用一个函数或使用$SERVER['SERVER\u NAME']和其他一些调整来修剪它。

您可能想试试这个

$_SERVER['PATH_INFO']

如果您想指向插件目录中的文件,我经常使用的方法之一是使用plugins_url函数,在下面的示例中,“yourfile.php”将替换为您的唯一值,在本例中为“process.php”:

$new_variable = plugins_url( 'yourfile.php', _FILE_ );
这会将变量(对于大多数Wordpress安装)设置为'http://YOURDOMAIN.com/wp-content/plugins/yourfile.php'. 然而,使用plugins_url函数的好处是,如果有人安装了非标准Wordpress,并且插件位于不同的文件夹中,该函数仍然可以找出正确的PHP文件所在的位置

如果要查找的PHP文件位于子文件夹中,只需将“yourfile.PHP”修改为“subfolder/yourfile.PHP”

如果我误解了您要实现的目标,您只需要基本url,Wordpress可以使用home_url()函数。看(http://codex.wordpress.org/Function_Reference/home_url)

获取插件文件夹中文件的另一种方法是使用plugin\u dir\u url()

例如:

$new_variable = plugin_dir_url( _FILE_ ) . 'yourfile.php';
然后在表格中,使用:

<action = "<?php echo $new_variable; ?>">

如何使用该变量?主机中从来没有目录。你真的应该看到
www.richmindonline.com
。而且,是的,您肯定需要发布一个测试用例。不知道是否有一些.htaccess文件与值混淆。
$\u SERVER[HTTP\u HOST]
的描述包括--换句话说,为
主机提供的任何客户端:
HTTP头。你的客户在提供什么?我在用表格<代码>行动=纠正,这实际上使情况更糟。下面是我用
$\u SERVER['SERVER\u NAME']
替换它时显示的内容。我得到
http://www.richmindonline.com/home2/fortehom/public_html/richmindonline
代码放在名为mwfinder.php的文件中,该文件是我的插件的主文件。该文件位于
http://www.richmindonline.com/testenvironment/wp-content/plugins/malware finder/mwfinder.php
您想自己找吗?如果需要,我可以聊天。我只是厌倦了这个问题。这是我最不想做的事。试试这个$\u服务器['PATH\u INFO']这些建议似乎很有意义,但所有建议都只是添加到错误路径的尾部。Chris,我想我只能在模板文件中使用home\u url。我说的不对吗?是的,我正在尝试调用安装的baseurl,它需要是一个动态调用,因为用户目录总是不同的chris,就是这样!!!让我在另一个装置上测试一下,我会继续投票给你的答案。我认为home_url()只适用于模板文件是不好的。home_url()函数在插件文件中工作。我在我自己的WP开发中到处使用它。此外,您还可以使用site_url()。不同之处在于,site_url指向安装的文件夹,因此,如果您使用主安装的子目录,则会将其设置为“”。布拉德·威廉姆斯(Brad Williams)的一本书《专业Wordpress插件开发》(Professional Wordpress plugin development)对WP插件开发提出了很高的建议,书中概述了这一差异。