OldEr'S Blog

htmlspecialchars() в PHP >= 5.4.0

Как известно, у функции htmlspecialchars() есть необязательный параметр $encoding, которым определяется кодировка преобразуемой строки. До версии PHP 5.4.0 значением по умолчанию данного параметра была кодировка "ISO-8859-1", после 5.4.0 кодировкой по умолчанию стала UTF-8. Таким образом, вызывая функцию как htmlspecialchars($str), где $str - строка в кодировке отличной от UTF-8 (например windows-1251), имеем на выходе пустую строку. Чтобы разрешить данную ситуацию, необходимо указать кодировку передаваемой строки при вызове функции, например вот так:

$str = htmlspecialchars($str, ENT_COMPAT, 'cp1251');

Документация: http://php.net/manual/ru/function.htmlspecialchars.php

Связано с категорией: PHP 2 Комментарии

Установка Memcached PHP под Windows

Понадобилось установить memcached на локалку специально для некого громоздкого скрипта, который без вышеупомянутого модуля работать не умеет.
Процедура не обошлась без половых актов - спешу поделиться впечатлениями. = )

P.S Гугл выдает достаточно заметок на эту тему, но обнаруживается ряд ньансов, о которых расскажу подобнее.

Белые или пустые страницы

Перевод статьи о причинах возникновения "белых" страниц вместо страниц форума с vbulletin.com:

Известные причины появления пустых или "белых" страниц:

1. Вы неправильно загрузили файлы vBulletin. Заново загрузите все файлы vBulletin (кроме изображений) и убедитесь в том, что вы загрузили их в ASCII формате, а также в том, что вы перезаписали старые файлы. Убедитесь в том, что вы загрузили файлы "Панели администратора", в каталог панели администратора(admincp), которая указанна в config.php. Далее, если у вас есть доступ в "Панель Администратора", запустите "Подозрительные версии файлов" в "Диагностике", чтобы убедиться в том, что загружены все файлы, соответствующие Вашей версии форума:

Связано с категорией: MySQL, PHP, vBulletin Читать полностью

Набор символов п»ї вверху страницы

Бывает, что после каких-либо манипуляций с сайтом, будь-то одностраничный сайт или движок с набором php-скриптов, вверху странички, или страничек, появляются загадочные символы

п»ї

Происходит это из-за того, что какой-либо скрипт(ы) был сохранен в кодировке UTF-8 с BOM (Byte Order Mark), то есть с цифровой подписью, и эта подпись обрабатывается интерпретатором PHP, что и вызывает ошибку. Чтобы избавиться от этой проблемы нужно пересохранить скрипт(ы) без BOM. Если страничка одна, или не имеет includ`ов, то задача, разуммется, тривиальна. Но если речь идёт о серьезном движке, где достаточно много скриптов, которые, к тому же, еще и содержат includ`ы, то ручной перебор слишком утомителен. К счастью, для этих целей есть маленькая утилита bom-remover, которую можно использовать для поиска файлов сохраннёных с BOM и удаления цифровой подписи.

Но я бы рекомендовал пересохранять скрипты самостоятельно с помощью текстового редактора EmEditor.
Все что требуется от нас, это указать каталог, задать маску (по желанию) и нажать кнопку "Найти" и всё.
Ах да, и сказать большое спасибо автору программы. = )

Связано с категорией: PHP, Web Нет комментариев