PHP插入'&' /和字符串中的文本符号

时间:2015-09-12 10:55:51

标签: php

我正在尝试在我的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&amp;pass=123456' for inclusion

2 个答案:

答案 0 :(得分:3)

您的代码是正确的。它显示&amp;,因为如果显示错误,error.log的输出应该以HTML格式输出给用户。这里真正的问题是你试图包含一个文件并传递GET参数,但这是不可能的。当您include(尽管其requireinclude_once等所有变体发生同样的事情)时,您必须将其视为当前PHP文件的复制并粘贴。您试图从文件系统获取名称为index.php?client=WhateverClientListIs&pass=WhateverClientPassIs的文件,该文件不存在!

要解决此问题,您可以执行以下操作:

 $_GET['client'] = $clientList;
 $_GET['pass'] = $clientValue['client-pass'];
 include('index.php');

答案 1 :(得分:1)

无论您在文件名中添加什么符号(&&amp;),这种方法都无法正常工作,除非您确实拥有名称为

的文件
index.php?client=client1&password=1234
index.php?client=client2&password=123123
index.php?client=client3&password=qwerty

我的意思是真实的文件。原因include包含名称的文件。 如果您想加入index.php,则应include('index.php')