Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Как получить первые | последние несколько элементов массива на PHP

PHP
Для реализации одной задумки потребовалось получить первые несколько элементов массива, в дальнейшем следующие несколько элементов, затем следующие, и так до самого конца массива. В этом мне помогла функция array_slice, предназначение которой выбирать срез массива.

Пример получения первых трех элементов массива:
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$array = array_slice($array, 0, 3);

Теперь переменная $array содержит в себе массив:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Чтобы получить следующие три элемента, меняем ноль на три:
$array = array_slice($array, 3, 3);

И получаем:
Array
(
    [0] => 4
    [1] => 5
    [2] => 6
)

Получаем последние три элемента:
$array = array_slice($array, 7, 3);

Итог:
Array
(
    [0] => 8
    [1] => 9
    [2] => 10
)

Как Вы могли заметить, функция array_slice обнуляет ключи элементов. Если Вам необходимо сохранить порядковые номера ключей, укажите четвертым параметром true:
$array = array_slice($array, 7, 3, true);

В этом...

Чем отличаются операторы continue и break в PHP

PHP
Главное отличие операторов continue и break:
continue - Пропускает текущую итерацию.
break - Полностью останавливает выполнение цикла и выходит из него.

Для примера работы continue возьмем массив:
$rows = [1, 2, 3, 4, 5];

И прогоним его через цикл foreach. При значении 3 отработает continue:
foreach ($rows as $row)
{
    if ($row == 3)
    {
        continue;
    }

    echo $row . ' ';
}

Результат будет таким:
1 2 4 5


Для примера работы break будем прогонять тот же массив. Код цикла будет такой же, только вместо continue, будет break:
foreach ($rows as $row)
{
    if ($row == 3)
    {
        break;
    }

    echo $row . ' ';
}

На экране мы увидим результат:
1 2
...

Точная замена слов в тексте на PHP

PHP
Функция str_replace служит для замены подстрок в строке. Задаем слово или слова, которые надо найти в строке и на что их менять, в общем-то это все. Легко и просто. Но если небольшой нюанс, допустим Вам необходимо заменять слова холод, скажем на слово тепло:
$text = str_replace('холод', 'тепло', $text);

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

Решение №1: Добавлять пробелы в начале и конце слов:
$text = str_replace(' холод ', ' тепло ', $text);

Так будет искать и заменять только те слова, которые нужны Вам. Но если в тексте слово холод будет самым первым, то пробела перед словом не будет и замена не осуществица. Так же замены не будет, если после слово холод стоит точка, или любой другой знак препинания. В таком случае подойдет решение №2.

Решение №2: Использовать регулярное...

Как использовать функции password_hash и password_verify в PHP

Одним из самого важного для пользователя интернета является его безопасность, нельзя допустить утечку его личных данных. Хэширование пароля - это один из пунктов безопасности для пользователя, чем строка хэша будет сложнее, тем труднее будет получить из нее пароль.

Когда то для хеширования пароля достаточно было функции "md5", но сегодня этого мало: https://secure.php.n ... swords.fasthash:
Почему популярные хеширующие функции, такие как md5() и sha1() не подходят для паролей?
Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат этих алгоритмов методом "грубой силы" для определения оригинальных вводимых данных.

Из-за той скорости, с которой современные компьютеры могут "обратить" эти хеширующие алгоритмы, многие профессионалы компьютерной безопасности строго не рекомендуют использовать их для хеширования паролей.

PHP.NET рекомендует для...

Массовая проверка proxy на работоспособность

PHP
Многие из тех, кто писал парсеры, сталкивались с очень неприятной ситуацией, когда сайт блокирует частые запросы с одного IP. Если же выставить задержку с помощью sleep(), процесс идёт очень медленно, что нас не очень устраивает.
Проведя в поиске решения какое-то время, все понимают, что для того, чтобы сервер, на который посылаются запросы, не блокировал их,- нужно использовать прокси-серверы.
Ну что-ж, отлично, решение найдено! Программист, довольный собой, идёт искать списки прокси-серверов. Если задача, которую ему нужно выполнить, небольшая, то он успешно находит несколько IP прокси, вручную их записывает в файл и успешно использует.
Но если запросов нужно делать очень много, десятка прокси нам не хватит. В ужасе мы открываем для себя новость, что нет больших списков прокси, 100% которых бы работали и предоставлялись бесплатно.
Бесплатные прокси часто перестают работать после одного дня работы. И даже если мы сегодня скопируем к себе пару сотен прокси, назавтра половина из них...