Выводятся записи из рубрики «PHP»

Элементарные примеры плохой практики в PHP

Вопрос

Я думаю, что в программировании будет верным такой принцип: «Если что-то работает и даёт ожидаемый результат, это ещё не значит, что оно работает правильно". Начинающий программист может, сам того не осознавая, взять за привычку выполнять какие-то задачи не самым лучшим образом. И хотя на выходе получиться вроде работающий код, его качество будет желать лучшего с разных точек зрения: безопасность, производительность, читабельность, масштабируемость и так далее.

Я вот сам недавно узнал, что очень часто применяю не лучшую практику при написании PHP-кода: использую кучу глобальных переменных, create_function() и т.п. Меня это обеспокоило. В связи с этим я решил поставить вопрос таким образом: что считается плохой практикой в PHP, какие распространенные ошибки допускают начинающие программисты, чего следует избегать?

Посоветуйте хорошую бесплатную IDE для PHP

Вопрос

Я начинающий PHP-разработчик, до этого я создавал редактировал .php файлы в разных редакторах с подсветкой синтаксиса (таких как Notepad++ и PHP Expert Editor). Но теперь хочу попробовать что-нибудь более мощное, так что выбираю себе среду для разработки. Какие посоветуете из бесплатных?

PHP: какая разница между self и $this?

Вопрос

Какая разница между использованием выражений self и $this в PHP5? Когда использовать каждое из них более уместно?

Парсинг и обработка HTML на PHP?

Вопрос

Как можно парсить HTML и извлекать из него информацию? Какие библиотеки существуют для этой цели? Какие у них достоинства и недостатки?

Почему этот PHP-код не печатает буквы от A до Z?

Вопрос

Вот код, от которого ожидается вполне логичный результат (вывод букв от A до Z):

for ($i = 'a'; $i <= 'z'; $i++)
    echo "$i\n";

Но на самом деле на выходе получим:

a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex... on to yz

Объясните, пожалуйста, логику PHP.

Как предотвратить SQL-инъекции в PHP?

Вопрос

Насколько я понял, база данных MySQL особо уязвима от SQL-инъекций. Вы не могли бы объяснить мне, как можно защититься от них? Предположим, есть вот такой код:

// соединяемся с базой
$unsafe_variable = $_POST["user-input"];
mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')");
// разъединяемся

Что надо изменить, чтобы быть уверенным на 100%, что SQL-инъекция не пройдёт?

MySQL. DATETIME или TIMESTAMP?

Вопрос

Что Вы порекомендуете использовать в MySQL: DATETIME или TIMESTAMP, и почему? Я работаю с PHP.

Как на PHP извлечь из HTML картинки и их атрибуты (title и alt)?

Вопрос

Я хочу создать страницу, на которой будут находится все изображения из других страниц. Для этого необходимо найти способ получить из тегов IMG адреса этих картинок (src), а также атрибуты title и alt. Я полагаю, что проблему можно решить с использованием регулярных выражений, но, как оказалось, это не так просто, потому что существует много вариантов того, как можно вставить картинку через тег IMG.

Как определить часовой пояс пользователя?

Вопрос

Есть ли какой-нибудь стандартный способ получить на веб-сервере информацию о том, какой часовой пояс у пользователя? Есть ли такая JavaScript-функция, если нет, то может быть эта информация есть в HTTP-заголовках или описании user-agent в браузере, например. Или же вычислить часовой информацию по IP.

Когда стоит использовать POST, а когда GET?

Вопрос

В интернете я встречал разные противоположные мнение на эту тему: «никогда не используйте GET, а используйте POST», «никогда не используйте POST, а используйте GET», «не имеет значения, что использовать».

Хотелось бы раз и на всегда разобраться с этим вопросом. И главное - почему стоит использовать тот или иной способ передачи данных?

Назад, в будущее