PHP

PHP: Переменные переменных

Опубликовано tulvit - пн, 07/12/2015 - 19:42

Все еще, стало быть, пытаюсь осилить главу "Language Basics" книжечки "Programming PHP" от O'Reilly.

Дошел до "Variable Variables". Всего два предложения на тему:

Так и так, вы можете обращаться к значению переменной, чье имя хранится в другой переменной, используя дополнительный "$":

$var = "lol";
$$var = "kek";
echo $lol; // outputs "kek"

За сим все, едем дальше.

Комментарии в PHP

Опубликовано tulvit - вт, 10/11/2015 - 03:53

Я тут книжечки по пхп начал читать, как ранее писал. Ну и естественно, будучи PHP разработчиком с восьмилетним стажем, разработавшим с нуля штук пять CMS и под сотню разных скриптов и модулей и входящий в TOP 30% PHP разработчиков по тестам UpWork'a, я нахожу для себя много чего нового в книгах "PHP for Beginners", начиная прямо с глав "Language Basics". Чем и буду изредка делиться.

Сейчас - о комментариях в PHP.

Функции ресайза изображений в PHP

Опубликовано tulvit - чт, 18/12/2014 - 11:05

Иногда так бывает, что из года в год постоянно пользуешься чем-то не тем. Ну или тем, но не так. Подсмотрел где-то не совсем корректный пример. Перенял чужой опыт, опять же не совсем корректный. А подумать забыл. И понеслось.

Собственно, о резайзе картинок средствами библиотечки GD. В ней для ресайза доступны две функции: imagecopyresized() и imagecopyresampled(), с одинаковыми аргументами и возвращаемым значением.

Профилирование PHP кода

Опубликовано tulvit - сб, 29/11/2014 - 13:30

In software engineering, profiling ("program profiling", "software profiling") is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls. Most commonly, profiling information serves to aid program optimization.

Другими словами, профилирование - вещь нужная и полезная. К сожалению, IDE напрямую в профилирование PHP не могут (сижу на Eclipse), поэтому придется совершить ряд телодвижений.

WebDev Заметки на полях

Опубликовано tulvit - пт, 24/05/2013 - 23:38

Постоянно появляются какие-то мысли, ну или просто натыкаюсь на интересные решения, которыми хочется поделиться. В отдельности все это на пост явно не тянет, но вот публиковать подборочками почему бы и нет.

PHP rand() vs mt_rand()

Раньше был сторонником использования
mt_rand()
заместо
rand()
. Ну а что, работает аж в 4 раза быстрее, да и на выходе выдает не просто псевдослучайные числа, а более случайные псевдослучайные! Во всяком случае так говорит официальная документация.

Может оно так и было раньше (точнее таки да, было), но все течет, все меняется. На данный момент эти две функции работают примерно одинаково быстро (тестил), и "случайность" у них плюс/минус одинаковая, вот такого уже больше нет.

Алгоритмы используются разные, это да. Для mt_rand это Mersenne twister, для rand либо LCG (для Windows), либо LFSR (для Линукс). Но данные различия уже скорее для эстетов, лично я остаюсь при rand(), раз уж разницы особой нет.

Различия echo и print. Что использовать?

Опубликовано tulvit - вт, 07/12/2010 - 14:26

Конструкции echo и print выполняют одинаковую функцию - вывод строковой информации. В исходниках и книгах можно встретить как повсеместное использование print-а, так и echo. В чем же их отличие и чему лучше отдать предпочтение?

MySQL vs файлы. Скорость поиска строки по подстроке.

Опубликовано tulvit - пн, 20/09/2010 - 18:02

На днях задался вопросом целесообразности хранение строковых данных в БД вместо файлов с точки зрения скорости поиска.

Хотя, конечно, вопрос правильней поставить так — чем быстрее осуществлять поиск в массиве строк, средствами языка программирования (в данном случае php) или средствами РСУБД (MySQL)? А сравнение «MySQL vs файлы» только для наглядности, ведь данные в базах тоже хранятся в файлах (а в чем же еще?) и используется все та же файловая система.

Решил провести небольшой тест. Сгенерировал 100к строк вида

MP0bWDXN1AxhI9yCZiGpKUZObSBOSrFv6vxTYkxPLUXjUmLJui
Z53PK4xcJgteCqAZ9p9w5LhTU15wBqFrlz6VtuX3Bg83xzSwOS
Tjt0seSoBkE6BPvyBPSoJjvHcS6VfLDYlXPD1ySsImp91Lxsrg

Каждая строка при генерации писалась одновременно в файл (*.txt) и в четыре таблицы — таблицу типа MyISAM, тип данных «text», таблицу MyISAM, тип данных «varchar(100)», таблицу InnoDB, тип данных «text» и таблицу InnoDB, тип данных «varchar(100)».

LAMP. Ubuntu Linux + Apache + MySQL + PHP.

Опубликовано tulvit - ср, 07/07/2010 - 19:25

В статье рассматривается установка веб-сервера, его конфигурирование, установка необходимых расширений и библиотек, дополнительных веб-приложений и тестирование всего этого на примере установки CMS Drupal.

Статья рассчитана на начинающих пользователей Linux, поэтому содержит теоретические вставки и предполагает использование GUI там, где это возможно и оправдано.

В качестве дистрибутива Linux используется Ubuntu 10.04, хотя инструкция, надо полагать, справедлива как для других версий Ubuntu, так и для некоторых других дистрибутивов.

Двойные и одинарные кавычки в php

Опубликовано tulvit - вс, 04/04/2010 - 20:32

Я сторонник красивого и оптимизированного кода, хоть и не всегда у меня получается следовать всем правилам «хорошего тона» в программировании.

Сейчас же речь пойдет о правильном использовании двойных и одинарных кавычек в php. Перед тем, как начать писать пост, я бегло просмотрел имеющиеся у меня книги по php, и, что странно, ни в одной не увидел правильного использования кавычек. Почему – для меня загадка. Обвинять авторов в дилетантстве нет ни малейшей возможности, книги далеко не для «чайников». Может быть просто не хотели акцентировать на этом внимание, дескать кому надо, тот сам разберется.