Изменение регистра символов
Необходимо было проверить строку на наличие слов, написанных в верхнем регистре и заменить их на слово в нижнем регистре, но с заглавным первым символом.
Функция ctype_upper не подошла, т.к. плохо работает с кириллицей.
Написал такую функцию:
function lower($str, $charset='UTF-8') { // Разбиение строки. $tmp = explode(' ', $str); if (is_array($tmp) && 0 < ($count = count($tmp))) { for ($i=0;$i<$count;$i++) { /** * Для определения кириллицы используется тождественное сравнивание, * т.к. ctype_upper работает некорректно. * */ if ($tmp[$i] !== mb_strtolower($tmp[$i], $charset)) { $tmp[$i] = mb_convert_case(mb_strtolower($tmp[$i], $charset), MB_CASE_TITLE, $charset); } } } $str = implode(' ', $tmp); return $str; }
Использовать можно так:
$str = 'Записки WEB-ПРОГРАММИСТА'; echo lower($str); // Записки Web-Программиста
Условия в if
В стандартах кодирования в разделе "форматирование блоков if then else" написано, что при сравнении константы необходимо ставить слева, т.е.
if (1 == $var)
Сегодня задумался по поводу сравнения с булевыми константами.
Как лучше писать
if (true === $var)
или использовать восклицательный знак (!)
if (!$var)
Загрузка файлов с помощью PHP и cURL
При написании приложения для работы с vkontakte.ru Ads API потребовалось загружать данные на их сервер.
С помощью cURL и PHP делается это так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | < ?php $ch = curl_init(); // URL для обработки. curl_setopt($ch, CURLOPT_URL, $url); // Не отправлять заголовки в браузер curl_setopt($ch, CURLOPT_HEADER, false); // Название браузера. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)"); // Возвращать содержимое. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Заголовки для запроса. $headers = array( 'Expect:', ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // Сообщаем, что это POST-запрос. curl_setopt($ch, CURLOPT_POST, true); // Данные POST-запроса. $post = array( 'file' => '@/home/izra/file.ext' ); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Получение ответа. $return = curl_exec($ch); // Закрытие соединения. curl_close($ch); ?> |
exit(); vs die();
Почему-то всегда думал, что между die(); и exit(); есть какая-то небольшая разница. Но никогда не думал проверить это. Как оказалось разницы между этими конструкциями нет вообще.
Скорее всего die(); существует для того, чтобы программисты, работающие с Perl могли более легко перейти на PHP.
MySQL. Неизвестная пунктуация.
На днях столкнулся с непонятной ошибкой MySQL. Сервер сообщал, что в запросе на вставку записи (с другими не пробовал) допущена ошибка "Неизвестная пунктуация".
Ошибка появлялась в тот момент когда вставлялось 2 и более записи и в какой-либо из строк содержится точка с запятой (;). Дамп заливался через консоль, phpmyadmin и Sypex Dumper Lite 1.0.8.
Причина в func_overload библиотеки mbstring. Для корректной работы оно должно быть отключено.
WebAsyst
Сегодня пришлось поработать с WebAsyst. Ну и херня же эта система.
А пришлось мне переносить его с одного сервера на другой.
Сначала оказалось, что все таблицы, кроме таблиц с префиксом "CS_" в нижнем регистре, а в скриптах используется в верхнем регистре.
Потом я искал место, где в этой системе можно прописать данные для базы данных.
Потом оказалось, что логин и пароль от панели администрирования клиент не знает.
Подробнее...
Говнокод: Логика
1 2 3 4 5 6 7 8 9 10 11 | function Logika($f) { $t=($f=true) ? true : false switch($t) { case true: $return=1; break; case false: $return=0; break; default: $return; break; } return $return; } |
php программистам!
Во время поиcка помощника, провел достаточно большое число собеседований по вакансии php-программист. Люди приходили разные. Но почти все знают минимум. Да даже не минимум. Знания ниже того уровня, который требуется для разработки простейшего web-сайта.
Подробнее...
e-planet.ru — негативный отзыв

Так уж сложилось, что мне пришлось делать сайт для одного клиента. Сайт сделан, клиентом принят. Осталось подписать все акты и перенести на хостинг площадку клиента.
Размещается клиент на серверах хостинг-провайдера E-Planet.
Подробнее...
Где же ты, программист на PHP
Не успев закрыть вакансию приходится снова ее открывать. Последний программист был с треском уволен 1-го апреля. Нет, это не была шутка, просто так легли карты.
И теперь мне снова нужен работник. А требования-то совсем маленькие. На такую должность, с такими требованиями, программисты должны слетаться как мухи на сами знаете что.
Очень большие шансы у кандидата, который знает, что такое PHP не понаслышке, представляет как пользоваться LEFT/RIGHT/INNER JOIN, GROUP BY и знает слово HAVING. Ну и, естественно, работал с шаблонизатором Smarty.