我试图在我的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
代码是正确的。它显示一个&
,因为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');
无论你在文件名中放入什么符号(&
或&
),这种方法都不会像你期望的那样起作用,除非你的文件名真的是
index.php?client=client1&password=1234
index.php?client=client2&password=123123
index.php?client=client3&password=qwerty
我是说真正的文件。include
包含文件名的文件。如果你想包含index.php
你应该包含include('index.php')