Массивы PHP, определенные с пустыми строками

У меня странная проблема с определением и доступом к значениям массива. Строки, которые я создал, возвращаются пустыми. Когда я делаю var_dump, я вижу, что значения массива имеют правильную длину строки, но в результате «». Когда я пытаюсь получить доступ к переменной, я получаю «». Может кто-нибудь объяснить это поведение?

//define the case combinations
$cases = array(
"<CO><VO><CO><VOP>",
"<VO><CLOSED><VO>",
"<OPEN><CO><VO>",
"<CO><VOP><ESCB>",
"<COP><VO><CO><CVN>",
"<STVE><ESCB>");

Вар-дамп:

array(6) { [0]=> string(17) "" [1]=> string(16) "" [2]=> string(14) "" [3]=> string(15) "" [4]=> string(18) "" [5]=> string(12) "" }

Аналогичная проблема возникает с другими массивами:

$siteSuffix = array(
"data" => array('com','org','net','edu'),
"probabilities" => array(1,1,1,1), //not actually used
"name" => "siteSuffix"

);

Массив в «data» печатает строки таким же образом.

Если проблема не связана с этим, вот ссылка на github, где остальная часть кода: ссылка на сайт

1

Решение

Похоже, потому что у вас есть htmlentities в ваших фактических данных (массив) < а также > PHP не будет интерпретировать их как фактические значения / строки.

Что вы можете сделать, это конвертировать символы с помощью htmlspecialchars(), например:

$cases = array(
"<CO><VO><CO><VOP>",
"<VO><CLOSED><VO>",
"<OPEN><CO><VO>",
"<CO><VOP><ESCB>",
"<COP><VO><CO><CVN>",
"<STVE><ESCB>");

foreach ($cases as $case){
var_dump(htmlspecialchars($case));
}

Вывод var_dump:

string(41) "<CO><VO><CO><VOP>" string(34) "<VO><CLOSED><VO>" string(32) "<OPEN><CO><VO>" string(33) "<CO><VOP><ESCB>" string(42) "<COP><VO><CO><CVN>" string(24) "<STVE><ESCB>"
2

Другие решения

Проблема с угловыми скобками < а также > распечатать их в браузере вы можете просто использовать echo htmlentities($str) или же htmlspecialchars($str)для каждого элемента массива.
Если вы используете командную строку php, вам не нужна такая кодировка.

См: https://www.w3schools.com/php/func_string_htmlentities.asp

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector