Только для забавы
Принятие можно использовать селекторы CSS3, можно сделать что-то как
<div class="posts">
<? foreach($posts as $post){?>
<div>
<?=$post?>
</div>
<? }?>
</div>
<style>
div.posts div:odd{background-color:red;}
</style>
Даже с поддержкой CSS2 и mootools (библиотека JavaScript), можно заменить стилем с этим javascript
<script type="text/javascript">
// obviously this script line should go in a js file in a onload (or onDomReady) function
$('div.posts div:odd').setStyle('background-color','red');
</script>
, Если у Вас ничего нет кроме php этим, можно упростить немного Ваш код с помощью массива
<? $isodd=array('','odd');
$c=0;
foreach($posts as $post){?>
<div class="<?=$isodd[$c++%2]?>">
<?=$post?>
</div>
<? }?>
Если локаль по умолчанию в вашей среде не включает эти символы, вы не удается открыть файл.
См .: File.exists () не работает с символами Юникода в имени
Изменить: Хорошо .. Что вам нужно, так это изменить языковой стандарт системы. Какую бы ОС вы ни использовали.
Правка :
См .: Как я могу открыть файлы, содержащие диакритические знаки в Java?
См .: JFileChooser на Mac не может видеть файлы, названные китайскими символами ?
Я подозреваю, что один из Java или Mac использует CESU-8 вместо правильного UTF-8. Java использует «модифицированный UTF-8» (который является небольшим вариантом CESU-8) для различных внутренних целей, но я не знал, что он может использовать его как файловую систему / defaultCharset. К сожалению, у меня нет здесь ни Mac, ни Java для тестирования.
«Изменено» - это модифицированный способ сказать «с серьезными ошибками». Вместо вывода четырехбайтовой последовательности UTF-8 для дополнительных (не BMP) символов, таких как
Это оказалось проблемой с Mac JVM (проверено на 1.5 и 1.6). Имена файлов, содержащие дополнительные символы / пары суррогатов, недоступны с помощью класса Java File. В итоге я написал библиотеку JNI с вызовами Carbon для версии проекта для Mac (ick). Я подозреваю, что проблема CESU-8, о которой упоминалось ранее, поскольку вызов JNI для получения символов UTF-8 вернул строку CESU-8. Не похоже, чтобы это действительно можно было обойти.