我试图在我的PHP代码中插入&
符号,但它却被转换成ASCII &
。
下面是我的代码:
$symbolAnd= '&';
echo $symbolAnd;
foreach ($clientLists as $clientList =>$clientValue){
//Get values
echo $clientList .' - '.$clientValue['client-pass'] . '<br/>';
include('index.php?client='.$clientList.$symbolAnd.'pass='.$clientValue['client-pass']);
}//foreach ($clientLists as $clientList){
我在我的error_log
中得到这个错误;
PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'index.php?client=john-jones&pass=123456' for inclusion
发布于 2015-09-12 11:10:24
您的代码是正确的。它显示了一个&
,因为如果显示了错误,error.log的输出就是在HTML语言中应该输出给用户的内容。这里真正的问题是,您试图包含一个文件并传递GET参数,但这是不可能的。当你include
一个文件(尽管它的所有变体,如require
和PHP ),你必须把它看作是该文件的副本并粘贴到你当前的PHP文件中。您正在尝试从文件系统获取名为index.php?client=WhateverClientListIs&pass=WhateverClientPassIs
的文件,但该文件并不存在!
要解决此问题,可以执行以下操作:
$_GET['client'] = $clientList;
$_GET['pass'] = $clientValue['client-pass'];
include('index.php');
发布于 2015-09-12 11:06:31
无论您在文件名中输入了什么符号(&
或&
),这种方法都不会像您期望的那样工作,除非您真的拥有名称为
index.php?client=client1&password=1234
index.php?client=client2&password=123123
index.php?client=client3&password=qwerty
我是说真正的文件。原因include
包含名称为的文件。如果你想包含index.php
,你应该使用include('index.php')
https://stackoverflow.com/questions/32537996
复制