2015-09-12 2 views
0

Я пытаюсь вставить символ & в свой PHP-код, но вместо этого он преобразуется в ASCII &.PHP Вставить '&'/и текстовый символ в строку

Ниже мой код:

$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

+0

Что бы вы ни triyng сделать это не будет работать таким образом. –

+0

Привет, как я могу это сделать? Благодарю. – xltmt

+0

попробуйте использовать 'htmlspecialchars()'. –

ответ

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')

3

Ваш код верен. Он отображает &amp;, потому что вывод 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'); 
+0

Спасибо за ваш ответ. Я не могу использовать '$ _GET', поскольку значения находятся внутри многомерного массива, которые выводятся с использованием цикла foreach – xltmt

+0

И что? На каждой итерации задайте переменные 'GET' или используйте ключевое слово' global'. –

+0

Я согласен с этим ответом. Вы должны иметь возможность включать файл таким образом, задавая значения GET вручную. – CodeGodie

Смежные вопросы