Когда я использую htmlentities()
для кодирования переменной, он работает как шарм, но если я делаю то же самое с массивом, он просто возвращает пустой массив. Я попытался использовать array_map()
, но это та же история. Я попытался переключить кодировку на ISO-8859-1
и UTF-8
, но безуспешно. Он не хочет работать.htmlentities() возвращает пустую строку при использовании с массивом
Вот код:
<html>
<head>
<title>Signup</title>
</head>
<body>
<form name="signup" method="POST" action="form.php">
<fieldset>
<legend><p style="color:red; font-size:16px">Sports</p></legend>
<ul>
<li>
<input type="checkbox" name="sports[]" value="soccer">
<label for="soccer">Soccer</label>
</li>
<li>
<input type="checkbox" name="sports[]" value="water_polo">
<label for="water_polo">Water polo</label>
</li>
<li>
<input type="checkbox" name="sports[]" value="tennis">
<label for="tennis">Tennis</label>
</li>
<li>
<input type="checkbox" name="sports[]" value="volleyball">
<label for="volleyball">Volleyball</label>
</li>
</ul>
</fieldset>
</form>
<?php
$sports = htmlentities($_POST["sports"], ENT_COMPAT, 'ISO-8859-15');
$count = count($sports);
if($count == 0) {
echo "You don't play any sports.<br>";
} else {
echo "You like playing: ";
foreach($sports as $s) {
if(--$count == 0) {
echo "<span style='color:red'>$s</span>.<br>";
break;
} else {
echo "<span style='color:red'>$s</span>, ";
}
}
}
?>
</body>
</html>
Он производит следующий вывод:
You don't play any sports.
Значение htmlentities() не был в состоянии кодировать мой массив.
Как выглядит форма/входы? и как вы использовали 'array_map()'? –
['htmlentities()'] (http://php.net/manual/de/function.htmlentities.php) не принимает массив. – simon
@simon Я сомневаюсь, что OP понимает немецкий ;-) Используйте английские ссылки http://php.net/manual/en/function.htmlentities.php при ссылках на PHP.net –