我正在尝试在我的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
答案 0 :(得分:3)
您的代码是正确的。它显示&
,因为如果显示错误,error.log的输出应该以HTML格式输出给用户。这里真正的问题是你试图包含一个文件并传递GET参数,但这是不可能的。当您include
(尽管其require
和include_once
等所有变体发生同样的事情)时,您必须将其视为当前PHP文件的复制并粘贴。您试图从文件系统获取名称为index.php?client=WhateverClientListIs&pass=WhateverClientPassIs
的文件,该文件不存在!
要解决此问题,您可以执行以下操作:
$_GET['client'] = $clientList;
$_GET['pass'] = $clientValue['client-pass'];
include('index.php');
答案 1 :(得分:1)
无论您在文件名中添加什么符号(&
或&
),这种方法都无法正常工作,除非您确实拥有名称为
index.php?client=client1&password=1234
index.php?client=client2&password=123123
index.php?client=client3&password=qwerty
我的意思是真实的文件。原因include
包含名称的文件。
如果您想加入index.php
,则应include('index.php')