Практическая работа 3. Основы работы с встроенными и пользовательскими функциями

Округление и ассоциативный массив

Задача 1

Найдите корень из числа 1000. Округлите его в большую и меньшую стороны. В массив $arr запишите первым элементом корень из числа, вторым элементом - округление в меньшую сторону, третьим элементом - в большую.

Решение:

 

корень из числа найдем функцией sqrt. Далее, чтобы округлить число в меньшую строну, воспользуемся функцией floor, а чтобы в большую - функцией ceil:


                     $sqrt = sqrt(1000); //найдем корень и запишем его в $sqrt
                     echo floor($sqrt); //округлим в меньшую сторону
                     echo ceil($sqrt); //округлим в большую сторону
                

Корень из 1000 = 31.622776601684
округление в меньшую сторону - 31
округление в большую сторону - 32


Теперь результаты необходимо записать в массив. Сделать это можно двумя способами: объявить через [ ] либо просто воспользоваться присваиванием $arr[ ] = 'html'; $arr[ ] = 'php'; и так далее.

Первый способ:


                     $sqrt = sqrt(1000);
                     $arr = [$sqrt, floor($sqrt], ceil($sqrt));
                
array(3) { [0]=> float(31.622776601684) [1]=> float(31) [2]=> float(32) }

Второй способ:


                     $sqrt = sqrt(1000)
                     $arr[] = $sqrt;
                     $arr[] = floor($sqrt);
                     $arr[] = ceil($sqrt);
                
array(3) { [0]=> float(31.622776601684) [1]=> float(31) [2]=> float(32) }

Массив случайных чисел

Задача 2

Заполните массив 30-ю случайными числами от 1 до 10.

Решение:

 

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

Случайные числа будем получать через функцию mt_rand.
Чтобы число записалось в новый элемент массива, следует сделать так:
  $arr[ ] = 1; $arr[ ] = 2; - первое число запишется в нулевой элемент массива, а второе - в первый (с ключом 1). В случае со случайными числами это будет выглядеть так:


                     //Каждое из чисел будет записываться в новый элемент массива:
                     $arr[] = mt_rand(1, 10);
                     $arr[] = mt_rand(1, 10);
                     $arr[] = mt_rand(1, 10);
                

Напоминаю о том, что ключи можно не оставлять пустыми, а делать своими:


                     //Используем свои ключи, а не автоматические:
                     $arr['Первый ключ'] = mt_rand(1, 10);
                     $arr['Второй ключ'] = mt_rand(1, 10);
                     $arr['Третий ключ'] = mt_rand(1, 10);
                

При большом желании мы можем вручную сделать 30 таких строчек - и задача решена. Но пусть лучше за нас это сделает цикл:


                     //Переменная $i нужна, чтобы цикл сделал 30 итераций (проходов)
                     for ($i = 1; $i <= 30; $i++) {
                      $arr[$i] = mt_rand(1, 10);
                     }

                     var_dump($arr);

                     /*
                      Пообновляйте страницу - 
                      вы увидите как меняется массив,
                      так как он заполняется случайными числами.
                     */
                
array(30) { [1]=> int(8) [2]=> int(4) [3]=> int(8) [4]=> int(7) [5]=> int(1) [6]=> int(3) [7]=> int(9) [8]=> int(3) [9]=> int(1) [10]=> int(7) [11]=> int(10) [12]=> int(4) [13]=> int(4) [14]=> int(4) [15]=> int(6) [16]=> int(5) [17]=> int(3) [18]=> int(8) [19]=> int(6) [20]=> int(7) [21]=> int(10) [22]=> int(2) [23]=> int(6) [24]=> int(10) [25]=> int(4) [26]=> int(1) [27]=> int(8) [28]=> int(5) [29]=> int(9) [30]=> int(9) }

Работа со строками

Задача 3

Дана строка 'minsk'. Сделайте из нее строку 'MINSK'.

Решение:

воспользуемся функцией strtoupper и сразу получим результат:


                    echo strtoupper('minsk');
                

Переменную var = minsk выведем в верхнем регистре - MINSK

Задача 4

Дана строка 'минск'. Сделайте из нее строку 'МИНСК'.

Решение:

 

функцией strtoupper мы не можем воспользоваться, так как она некорректно работает с русскими буквами. Воспользуемся функцией mb_strtoupper и сразу получим результат:


                    echo mb_strtoupper('минск');
                

Переменную var = минск выведем в верхнем регистре:
функцией strtoupper - минск
функцией mb_strtoupper - МИНСК

Задача 5

Дана строка 'MINSK'. Сделайте из нее строку 'Minsk'.

Решение:

готовой функции для решения задачи в PHP не существует. Поэтому сначала воспользуемся функцией strtolower (в результате получится 'minsk'), а затем функцией ucfirst:


                     echo ucfirst(strtolower('minsk'));
                

Переменную var = MINSK выведем в нижнем регистре:
функцией strtolower - minsk
функцией mb_strtolower - minsk

Задача 6

В переменной $date лежит дата в формате '31-12-2030'. Преобразуйте эту дату в формат '2030.12.31'.

Решение:

для начала разобьем строку '31-12-2030' в массив с помощью функции explode:


                     //Разбиваем строку в массив по разделителю '-':
                     $arr = explode('-', '31-12-2030');
                
array(3) { [0]=> string(4) "2030" [1]=> string(2) "12" [2]=> string(2) "31" }

В полученном массиве в $arr[0] будет лежать 31 (то есть день), в $arr[1] - месяц, а в $arr[2] - год. Сольем элементы этого массива в новую строку:


                     //Разбиваем строку в массив по разделителю '-':
                     $arr = explode('-', '31-12-2030');

                     //Получим дату в нужном формате:
                     echo $arr[2].'.'.$arr[1].'.'.$arr[0];
                

Выведем строку - 2030-12-31, в нужном формате даты: 31.12.2030

Задача 7

Дана строка 'minsk'. Сделайте из нее строку 'MINSK'.

Решение:

воспользуемся функцией strtoupper и сразу получим результат:


                    echo strtoupper('minsk');
                

Переменную var = minsk выведем в верхнем регистре - MINSK

Задача 8

Дана строка 'москва'. Сделайте из нее строку 'Москва'.

Решение:

функцией strtoupper мы не можем воспользоваться, так как она некорректно работает с русскими буквами. Воспользуемся функцией mb_strtoupper и сразу получим результат:


                    echo ucfirst('москва');
                

Переменную var = москва выведем в верхнем регистре первую букву:
функцией ucfirst - москва
функцией mb_ucfirst - Москва

Задача 9

Дана строка 'MINSK'. Сделайте из нее строку 'Minsk'.

Решение:

готовой функции для решения задачи в PHP не существует. Поэтому сначала воспользуемся функцией strtolower (в результате получится 'minsk'), а затем функцией ucfirst:


                    echo ucfirst(strtolower('minsk'));
                

Выведем слово MINSK с заглавной буквы: Minsk

Задача 10

В переменной $date лежит дата в формате '31-12-2030'. Преобразуйте эту дату в формат '2030.12.31'.

Решение:

для начала разобьем строку '31-12-2030' в массив с помощью функции explode:


                     //Разбиваем строку в массив по разделителю '-':
                     $arr = explode('-', '31-12-2030');
                

В полученном массиве в $arr[0] будет лежать 31 (то есть день), в $arr[1] - месяц, а в $arr[2] - год. Сольем элементы этого массива в новую строку:


                     //Разбиваем строку в массив по разделителю '-':
                     $arr = explode('-', '31-12-2030');

                     //Получим дату в нужном формате:
                     echo $arr[2].'.'.$arr[1].'.'.$arr[0];
                

Выведем строку - 31-12-2030, в нужном формате даты: 2030.12.31

Работа с %

  1. Даны переменные $a=10 и $b=3. Найдите остаток от деления $a на $b.
    
                            $a = 10;
                            $b = 3;
                            $res = $a % $b;
                            print "

    Остаток от деления ".$a." на ".$b." составляет ".$res."

    ";

    Остаток от деления 10 на 3 составляет 1

  2.  
  3. Даны переменные $a и $b. Проверьте, что $a делится без остатка на $b. Если это так - выведите 'Делится' и результат деления, иначе выведите 'Делится с остатком' и остаток от деления.
    
                            $a=mt_rand(10,20);
                            $b=mt_rand(2,9);
                            if ($a % $b == 0) {
                                print "

    ".$a." делится на ".$b." без остатка, результат деления = ".$a/$b."

    "; } else { print "

    ".$a." делится на ".$b." с остатком ".$a % $b."

    ";} ?>

    20 делится на 8 с остатком 4

Работа со степенью и корнем

Для решения задач данного блока вам понадобятся следующие функции: sqrt, pow.

  1. Возведите 2 в 10 степень. Результат запишите в переменную $st.
    
                            var_dump(pow(2, 10));
                        

    2 в степени 10 = 1024

  2. Найдите квадратный корень из 245.
    
                            var_dump(sqrt(245));
                        

    квадратный корень из 245 = 15.652475842499

  3. Дан массив с элементами 4, 2, 5, 19, 13, 0, 10. Найдите корень из суммы квадратов его элементов. Для решения воспользуйтесь циклом foreach.
    
                            $arr = [4, 2, 5, 19, 13, 0, 10];
                            foreach($arr as $res) {
                                $val += pow($res, 2);
                            }
                            echo sqrt($val);
                        

    квадратный корень из суммы квадратов массива (675) = 25.980762113533

Работа с функциями округления

Для решения задач данного блока вам понадобятся следующие функции: round, ceil, floor.

  1. Найдите квадратный корень из 379. Результат округлите до целых, до десятых, до сотых.
    
                            echo round(sqrt(379));
                            echo round(sqrt(379), 1);
                            echo round(sqrt(379), 2);
                        
    Квадратный корень из 379 = 19.467922333932
    огруглённый до целых: 19
    огруглённый до десятых: 19.5
    огруглённый до сотых: 19.47
  2. Найдите квадратный корень из 587. Округлите результат в большую и меньшую сторону, запишите результаты округления в ассоциативный массив с ключами 'floor' и 'ceil'.
    
                            $arr['ceil'] = ceil(sqrt(587));
                            $arr['floor'] = floor(sqrt(587));
                            var_dump($arr);
                        
    array(2) { ["ceil"]=> float(25) ["floor"]=> float(24) }

Работа с min и max

Для решения задач данного блока вам понадобятся следующие функции: min, max.

  1. Даны числа 4, -2, 5, 19, -130, 0, 10. Найдите минимальное и максимальное число.
    
                            echo min(4, -2, 5, 19, -130, 0, 10);
                            echo max(4, -2, 5, 19, -130, 0, 10);    
                        
    В массиве чисел (4, -2, 5, 19, -130, 0, 10)
    минимальное число: -130
    максимальное число: 19

Работа с рандомом

Для решения задач данного блока вам понадобятся следующие функции: mt_rand.

  1. Выведите на экран случайное число от 1 до 100.
  2. 
                            echo mt_rand(1, 100);
                        
    5
  3. Заполните массив 10-ю случайными числами. Подсказка: нужно воспользоваться циклами for или while.
    
                            $i=0;
                            while ($i< 10) {
                                $arr["vl".$i]=mt_rand(1,100);
                                $i++;
                            }
                            var_dump($arr);
                        
    array(10) { ["vl0"]=> int(90) ["vl1"]=> int(100) ["vl2"]=> int(88) ["vl3"]=> int(85) ["vl4"]=> int(35) ["vl5"]=> int(49) ["vl6"]=> int(35) ["vl7"]=> int(5) ["vl8"]=> int(54) ["vl9"]=> int(21) }

Работа с модулем

Для решения задач данного блока вам понадобятся следующие функции: abs.

  1. Даны переменные $a и $b. Найдите модуль разности $a и $b. Проверьте работу скрипта самостоятельно для различных $a и $b.
    
                            $i=0;
                            while($i < 10) {
                                $a[]=mt_rand(1,100);
                                $b[]=mt_rand(1,100);
                                $i++;
                            }
                            $i=0;
                            while($i < 10) {
                                echo "для чисел ".$a[$i]." и ".$b[$i]." 
                                    модуль разности составляет: ".abs($a[$i]-$b[$i]);
                                $i++;
                            }
                        
    для чисел 91 и 58 модуль разности составляет: 33
    для чисел 6 и 86 модуль разности составляет: 80
    для чисел 69 и 82 модуль разности составляет: 13
    для чисел 18 и 86 модуль разности составляет: 68
    для чисел 42 и 76 модуль разности составляет: 34
    для чисел 4 и 73 модуль разности составляет: 69
    для чисел 42 и 21 модуль разности составляет: 21
    для чисел 92 и 1 модуль разности составляет: 91
    для чисел 71 и 45 модуль разности составляет: 26
    для чисел 16 и 35 модуль разности составляет: 19
  2. Дан массив в числами, к примеру [1, 2, -1, -2, 3, -3]. Создайте из него новый массив так, чтобы отрицательные числа стали положительными, то есть у нас должен получиться такой массив: [1, 2, 1, 2, 3, 3].
    
                            $arr = [1, 2, -1, -2, 3, -3];
                            foreach ($arr as $val) {
                                $arr_new[] = abs($val);
                            }
                            var_dump($arr);
                            var_dump($arr_new);
                        
    array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(-1) [3]=> int(-2) [4]=> int(3) [5]=> int(-3) }
    array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(1) [3]=> int(2) [4]=> int(3) [5]=> int(3) }

Работа с регистром символов

Для решения задач данного блока вам понадобятся следующие функции: strtolower, strtoupper, ucfirst, lcfirst, ucwords.

  1. Дана строка 'php'. Сделайте из нее строку 'PHP'.
    
                            $str="php";
                            echo strtoupper($str);
                        
    PHP
  2. Дана строка 'PHP'. Сделайте из нее строку 'php'.
    
                            $str="PHP";
                            echo strtolower($str);
                        
    php
  3. Дана строка 'london'. Сделайте из нее строку 'London'.
    
                            $str="london";
                            echo ucfirst($str);
                        
    London
  4. Дана строка 'London'. Сделайте из нее строку 'london'.
    
                            $str="London";
                            echo lcfirst($str);
                        
    london
  5. Дана строка 'london is the capital of great britain'. Сделайте из нее строку 'London Is The Capital Of Great Britain'.
    
                            $str="london is the capital of great britain";
                            echo ucwords($str);
                        
    London Is The Capital Of Great Britain
  6. Дана строка 'LONDON'. Сделайте из нее строку 'London'.
    
                            $str="LONDON";
                            echo ucfirst(strtolower($str));
                        
    London

Работа с strlen

Для решения задач данного блока вам понадобятся следующие функции: strlen.

  1. Дана строка 'html css php'. Найдите количество символов в этой строке.
    
                            $str="html css php";
                            echo strlen($str);
                        
    12
  2. Дана переменная $password, в которой хранится пароль пользователя. Если количество символов пароля больше 5-ти и меньше 10-ти, то выведите пользователю сообщение о том, что пароль подходит, иначе сообщение о том, что нужно придумать другой пароль.
    
                            $password=["London", 
                                       "AbcdE", 
                                       "drgjeorftdhbrfhtry", 
                                       "fgretydf", 
                                       "12345", 
                                       "dreftyu2345",
                                       "1234567890"];
                            foreach($password as $res) {
                                if (strlen($res) > 5 and strlen($res)<10) {
                                    echo "Пароль содержит ".strlen($res)." 
                                    символов это соответствует политике паролей.";
                                } else {
                                    echo "Пароль содержит ".strlen($res)." 
                                    символов это не соответствует политике паролей, 
                                    придумайте новый пароль.";
                                }
                            }
                        
    Пароль содержит 6 символов это соответствует политике паролей.
    Пароль содержит 5 символов это не соответствует политике паролей, придумайте новый пароль.
    Пароль содержит 18 символов это не соответствует политике паролей, придумайте новый пароль.
    Пароль содержит 8 символов это соответствует политике паролей.
    Пароль содержит 5 символов это не соответствует политике паролей, придумайте новый пароль.
    Пароль содержит 11 символов это не соответствует политике паролей, придумайте новый пароль.
    Пароль содержит 10 символов это не соответствует политике паролей, придумайте новый пароль.

Работа с substr

Для решения задач данного блока вам понадобятся следующие функции: substr.

  1. Дана строка 'html css php'. Вырежьте из нее и выведите на экран слово 'html', слово 'css' и слово 'php'.
    
                            $str="html css php";
                            echo substr($str, 0, 4);
                            echo substr($str, 5, 3);
                            echo substr($str, 9);
                        
    html
    css
    php
  2. Дана строка. Вырежите и выведите на экран последние 3 символа этой строки.
    
                            $str="html css php";
                            echo substr($str, -3);
                        
    php
  3. Дана строка. Проверьте, что она начинается на 'http://'. Если это так, выведите 'да', если не так - 'нет'.
    
                            $str=["html css php","http:// html css php"];
                            foreach ($str as $res) {
                                if (substr($res,0,7) == "http://") {
                                echo $res." - "Да";
                                } else {
                                echo $res." - "Нет";
                                }
                            }
                        
    html css php - Нет
    http:// html css php - Да
  4. Дана строка. Проверьте, что она начинается на 'http://' или на 'https://'. Если это так, выведите 'да', если не так - 'нет'.
    
                            $str=["html css php", 
                                  "http:// html css php", 
                                  "https:// html css php"];
                            foreach ($str as $res) {
                                if (substr($res,0,7) == "http://" 
                                    or substr($res,0,8) == "https://") {
                                echo $res." - "Да";
                                } else {
                                echo $res." - "Нет";
                                }
                            }
                        
    html css php - Нет
    http:// html css php - Да
    https:// html css php - Да
  5. Дана строка. Проверьте, что она заканчивается на '.png'. Если это так, выведите 'да', если не так - 'нет'.
    
                            $str=["picture.jpeg", 
                                  "picture.png", 
                                  "picture.bmp"];
                            foreach ($str as $res) {
                                if (substr($res,-4) == ".png") {
                                echo $res." - "Да";
                                } else {
                                echo $res." - "Нет";
                                }
                            }
                        
    picture.jpeg - Нет
    picture.png - Да
    picture.bmp - Нет
  6. Дана строка. Проверьте, что она заканчивается на '.png' или на '.jpg'. Если это так, выведите 'да', если не так - 'нет'.
    
                            $str=["picture.jpeg", 
                                  "picture.png", 
                                  "picture.bmp",
                                  "picture.jpg"];
                            foreach ($str as $res) {
                                if (substr($res,-4) == ".png" or
                                substr($res,-4) == ".jpg") {
                                echo $res." - "Да";
                                } else {
                                echo $res." - "Нет";
                                }
                            }
                        
    picture.jpeg - Нет
    picture.png - Да
    picture.bmp - Нет
    picture.jpg - Да
  7. Дана строка. Если в этой строке более 5-ти символов - вырежите из нее первые 5 символов, добавьте троеточие в конец и выведите на экран. Если же в этой строке 5 и менее символов - просто выведите эту строку на экран.
    
                            $str=["image", 
                                  "picture", 
                                  "illustration",
                                  "etc"];
                            foreach ($str as $res) {
                                if (strlen($res) >= 5) {
                                echo substr($res,0,5)."...";
                                } else {
                                echo $res;
                                }
                            }
                        
    image
    pictu...
    illus...
    etc

Работа с str_replace

Для решения задач данного блока вам понадобятся следующие функции: str_replace.

  1. Дана строка '31.12.2013'. Замените все точки на дефисы.
    
                            $str="31.12.2013";
                            echo str_replace('.','-',$str);
                        
    31-12-2013
  2. Дана строка $str. Замените в ней все буквы 'a' на цифру 1, буквы 'b' - на 2, а буквы 'c' - на 3.
    
                            $str="adbgcbdefaghcfgbxca";
                            $str=str_replace('a', '1', $str);
                            $str=str_replace('b', '2', $str);
                            $str=str_replace('c', '3', $str);
                            echo $str;
                        
    adbgcbdefaghcfgbxca
    1d2g32def1gh3fg2x31
  3. Дана строка с буквами и цифрами, например, '1a2b3c4b5d6e7f8g9h0'. Удалите из нее все цифры. То есть в нашем случае должна получится строка 'abcbdefgh'.
    
                            $str="1a2b3c4b5d6e7f8g9h0";
                            echo $str;
                            echo str_replace(['0','1','2','3','4','5','6','7','8','9'],'',$str);
                        
    1a2b3c4b5d6e7f8g9h0
    abcbdefgh

Работа с strtr

Для решения задач данного блока вам понадобятся следующие функции: strtr.

  1. Дана строка $str. Замените в ней все буквы 'a' на цифру 1, буквы 'b' - на 2, а буквы 'c' - на 3. Решите задачу двумя способами работы с функцией strtr (массив замен и две строки замен).
    
                            $str="adbgcbdefaghcfgbxca";
                            echo $str;
                            echo strtr($str, ['a'=>'1', 'b'=>'2', 'c'=>'3']);
                            echo strtr($str, 'abc', '123');
                        
    adbgcbdefaghcfgbxca
    1d2g32def1gh3fg2x31
    1d2g32def1gh3fg2x31

Работа с substr_replace

Для решения задач данного блока вам понадобятся следующие функции: substr_replace

  1. Дана строка $str. Вырежите из нее подстроку с 3-го символа (отсчет с нуля), 5 штук и вместо нее вставьте '!!!'.
    
                            $str="adbgcbdefaghcfgbxca";
                            echo $str;
                            echo substr_replace($str, '!!!', 2, 5);
                        
    adbgcbdefaghcfgbxca
    ad!!!efaghcfgbxca

Работа с strpos, strrpos

Для решения задач данного блока вам понадобятся следующие функции: strpos, strrpos.

  1. Дана строка 'abc abc abc'. Определите позицию первой буквы 'b'.
    
                            $str="abc abc abc";
                            echo $str;
                            echo strpos($str, 'b');
                        
    abc abc abc
    'b' на позиции - 1
  2. Дана строка 'abc abc abc'. Определите позицию последней буквы 'b'.
    
                            $str="abc abc abc";
                            echo $str;
                            echo strrpos($str, 'b');
                        
    abc abc abc
    последняя 'b' на позиции - 9
  3. Дана строка 'abc abc abc'. Определите позицию первой найденной буквы 'b', если начать поиск не с начала строки, а с позиции 3.
    
                            $str="abc abc abc";
                            echo $str;
                            echo strpos($str, 'b', 3);
                        
    abc abc abc
    вторая 'b' на позиции - 5
  4. Дана строка 'aaa aaa aaa aaa aaa'. Определите позицию второго пробела.
    
                            $str="aaa aaa aaa aaa aaa";
                            $frst = strpos($str, ' ') + 1;
                            echo $str;
                            echo strpos($str, ' ', $frst);
                        
    aaa aaa aaa aaa aaa
    второй пробел на позиции - 7
  5. Проверьте, что в строке есть две точки подряд. Если это так - выведите 'есть', если не так - 'нет'.
    
                            $str=["aaa.aaa.aaa.aaa.aaa", 
                                  "aaa.aaa..aaa.aaa"];
                            foreach ($str as $res) {
                                if (strpos($res, '..') !=0) {
                                    print "в строке ".$res." есть 2 точки подряд.";
                                } else {
                                    print "в строке ".$res." 2 точки подряд отсутствуют.";
                                }
                            }
                        
    в строке 'aaa.aaa.aaa.aaa.aaa' 2 точки подряд отсутствуют.
    в строке 'aaa.aaa..aaa.aaa' есть 2 точки подряд.
  6. Проверьте, что строка начинается на 'http://'. Если это так - выведите 'да', если не так - 'нет'.
    
                            $str=["ftp://site.ru",
                                  "http://site.ru",
                                  "https://site.ru"];
                            foreach ($str as $res) {
                                if(strpos($res, 'http://') === 0) {
                                    echo $res." да";
                                } else {
                                    echo .$res." нет";
                                }
                            }
                        
    ftp://site.ru нет
    http://site.ru да
    https://site.ru нет

Работа с explode, implode

Для решения задач данного блока вам понадобятся следующие функции: explode, implode.

  1. Дана строка 'html css php'. С помощью функции explode запишите каждое слово этой строки в отдельный элемент массива.
    
                            $str="html css php";
                            $arr=explode(" ", $str);
                            var_dump($arr);
                        
    array(3) { [0]=> string(4) "html" [1]=> string(3) "css" [2]=> string(3) "php" }
  2. Дан массив с элементами 'html', 'css', 'php'. С помощью функции implode создайте строку из этих элементов, разделенных запятыми.
    
                            $arr=['html', 'css', 'php'];
                            echo implode(", ", $arr);                    
                        
    html, css, php
  3. В переменной $date лежит дата в формате '2013-12-31'. Преобразуйте эту дату в формат '31.12.2013'.
    
                            $date="2013-12-31";
                            $arr=explode("-",$date);
                            echo $arr[2].".".$arr[1].".".$arr[0];
                        
    31.12.2013

Работа с str_split

Для решения задач данного блока вам понадобятся следующие функции: str_split.

  1. Дана строка '1234567890'. Разбейте ее на массив с элементами '12', '34', '56', '78', '90'.
    
                            $str="1234567890";
                            $arr=str_split($str, 2);
                            var_dump($arr);
                        
    array(5) { [0]=> string(2) "12" [1]=> string(2) "34" [2]=> string(2) "56" [3]=> string(2) "78" [4]=> string(2) "90" }
  2. Дана строка '1234567890'. Разбейте ее на массив с элементами '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'.
    
                            $str="1234567890";
                            $arr=str_split($str, 1);
                            var_dump($arr);
                        
    array(10) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" [5]=> string(1) "6" [6]=> string(1) "7" [7]=> string(1) "8" [8]=> string(1) "9" [9]=> string(1) "0" }
  3. Дана строка '1234567890'. Сделайте из нее строку '12-34-56-78-90' не используя цикл.
    
                            $str="1234567890";
                            $arr=str_split($str, 2);
                            $var=implode("-", $arr);
                            echo $str;
                            echo $var;                
                        
    1234567890
    12-34-56-78-90

Работа с trim, ltrim, rtrim

Для решения задач данного блока вам понадобятся следующие функции: trim, ltrim, rtrim.

  1. Дана строка. Очистите ее от концевых пробелов.
    
                            $str=" dmfnttvbejh ";
                            echo "|".$str."|";
                            echo "|".trim($str)."|";
                        
    | dmfnttvbejh |
    |dmfnttvbejh|
  2. Дана строка '/php/'. Сделайте из нее строку 'php', удалив концевые слеши.
    
                            $str="/php/";
                            echo $str;
                            echo trim($str, "/");
                        
    /php/
    php
  3. Дана строка 'слова слова слова.'. В конце этой строки может быть точка, а может и не быть. Сделайте так, чтобы в конце этой строки гарантировано стояла точка. То есть: если этой точки нет - ее надо добавить, а если есть - ничего не делать. Задачу решите через rtrim без всяких ифов.
    
                            $arr=["слова слова слова.",
                                  "слова слова слова"];
                            foreach ($arr as $res) {
                                echo $res." => ";
                                echo rtrim($res, ".").".";    
                            }
                        
    слова слова слова. => слова слова слова.
    слова слова слова => слова слова слова.

Работа с strrev

Для решения задач данного блока вам понадобятся следующие функции: strrev.

  1. Дана строка '12345'. Сделайте из нее строку '54321'.
    
                            $str="12345";
                            echo $str." => ".strrev($str);
                        
    12345 => 54321
  2. Проверьте, является ли слово палиндромом (одинаково читается во всех направлениях, примеры таких слов: madam, otto, kayak, nun, level).
    
                            $arr=['madam', 'page', 'otto', 'study', 'kayak', 
                                  'nun', 'lesson', 'level', 'post', 'office'];
                            foreach ($arr as $res) {
                                if ($res == strrev($res)) {
                                    echo $res." - палиндром";
                                } else {
                                    echo $res." - не палиндром";
                                }
                            }
                        
    madam - палиндром
    page - не палиндром
    otto - палиндром
    study - не палиндром
    kayak - палиндром
    nun - палиндром
    lesson - не палиндром
    level - палиндром
    post - не палиндром
    office - не палиндром

Работа с str_shuffle

Для решения задач данного блока вам понадобятся следующие функции: str_shuffle.

  1. Дана строка. Перемешайте символы этой строки в случайном порядке.
    
                            $str="abcdefghijklmn";
                            echo str_shuffle($str);
                        
    djbaglckimenfh
  2. Создайте строку из 6-ти случайных маленьких латинских букв так, чтобы буквы не повторялись. Нужно сделать так, чтобы в нашей строке могла быть любая латинская буква, а не ограниченный набор.
    
                            $str="abcdef";
                            echo str_shuffle($str."ghijklmnoprstuxyz");
                        
    ckigxsojbedzftlnuyamphr

Работа с number_format

Для решения задач данного блока вам понадобятся следующие функции: number_format.

  1. Дана строка '12345678'. Сделайте из нее строку '12 345 678'.
    
                            $str="12345678";
                            echo number_format($str, 0, ".", " ");
                        
    12 345 678

Работа с str_repeat

Для решения задач данного блока вам понадобятся следующие функции: str_repeat.

  1. Нарисуйте пирамиду, как показано на рисунке, только у вашей пирамиды должно быть 9 рядов, а не 5. Решите задачу с помощью одного цикла и функции str_repeat.
    x
    xx
    xxx
    xxxx
    xxxxx
    
                            $i=1;
                            while ($i < 10) {
                                echo str_repeat("x",$i);
                                $i++;
                            } 
                        
    x
    xx
    xxx
    xxxx
    xxxxx
    xxxxxx
    xxxxxxx
    xxxxxxxx
    xxxxxxxxx
  2. Нарисуйте пирамиду, как показано на рисунке. Решите задачу с помощью одного цикла и функции str_repeat. 1
    22
    333
    4444
    55555
    666666
    7777777
    88888888
    999999999
    
                            $i=1;
                            while ($i < 10) {
                                echo str_repeat($i,$i);
                                $i++;
                            } 
                        
    1
    22
    333
    4444
    55555
    666666
    7777777
    88888888
    999999999

Работа с strip_tags и htmlspecialchars

Для решения задач данного блока вам понадобятся следующие функции: htmlspecialchars, strip_tags.

  1. Дана строка ' html, <b>php</b>, js '. Удалите теги из этой строки.
    
                            $str="html, <b>php</b>, js";
                            echo "".strip_tags($str)."";
                        
    html, php, js
  2. Дана строка $str. Удалите все теги из этой строки, кроме тегов <b> и <i>.
    
                            $str="<div><p>study <b>php</b> <i>easy</i></p></div>";
                            echo "".strip_tags($str, ''."";
                        
    study <b>php</b> <i>easy</i>
  3. Дана строка ' html, <b>php</b>, js '. Выведите ее на экран 'как есть': то есть браузер не должен преобразовать <b> в жирный.
    
                            $str="html, <b>php</b>, js";
                            echo htmlspecialchars($str);
                        
    html, <b>php</b>, js

Работа с chr и ord

Для решения задач данного блока вам понадобятся следующие функции: chr, ord.

  1. Узнайте код символов 'a', 'b', 'c', пробела.
    
                            echo "код 'a' - ".ord('a');
                            echo "код 'b' - ".ord('b')";
                            echo "код 'c' - ".ord('c');
                            echo "код пробела - ".ord(' ');
                        
    код 'a' - 97
    код 'b' - 98
    код 'c' - 99
    код пробела - 32
  2. Изучите таблицу ASCII. Определите границы, в которых располагаются буквы английского алфавита.
    
                            echo "код 'A' - ".ord('A');
                            echo "код 'Z' - ".ord('Z');
                            echo "код 'a' - ".ord('a');
                            echo "код 'z' - ".ord('z');
                        
    код 'A' - 65
    код 'Z' - 90
    код 'a' - 97
    код 'z' - 122
  3. Выведите на экран символ с кодом 33.
    
                            echo chr(33); 
                        
    !
  4. Запишите в переменную $str случайный символ - большую букву латинского алфавита. Подсказка: с помощью таблицы ASCII определите какие целые числа соответствуют большим буквам латинского алфавита.
    
                            $str=mt_rand(65, 90);
                            echo chr($str);
                        
    S
  5. Запишите в переменную $str случайную строку $len длиной, состоящую из маленьких букв латинского алфавита. Подсказка: воспользуйтесь циклом for или while.
    
                            $len=12;
                            $i=1;
                            while ($i<=$len) {
                                $str=$str.chr(mt_rand(97, 122));
                                $i++;
                            }
                            echo "Результат: ".$str;
                        
    Результат: xnggjtguzlwu
  6. Дана буква английского алфавита. Узнайте, она маленькая или большая.

Работа с strchr, strrchr

Для решения задач данного блока вам понадобятся следующие функции: strchr, strrchr.

  1. Дана строка 'ab-cd-ef'. С помощью функции strchr выведите на экран строку '-cd-ef'.
  2. Дана строка 'ab-cd-ef'. С помощью функции strrchr выведите на экран строку '-ef'.
    
                             $letter=[78, 89, 102, 69, 112, 120, 128];
                             foreach ($letter as $val) {
                                 If ($val>=65 and $val<=90) {
                                     print "Коду ".$val." 
                                            Соответсвует большая буква - ".chr($val);
                                 } else {
                                     if ($val>=97 and $val<=122) {
                                         print "Коду ".$val." 
                                                Соответсвует маленькая буква - ".chr($val);
                                     } else {
                                         print "Коду ".$val." 
                                                Соответсвует символ - ".chr($val);
                                     }
                                 }
                             }
                        
    Коду 78 Соответсвует большая буква - N
    Коду 89 Соответсвует большая буква - Y
    Коду 102 Соответсвует маленькая буква - f
    Коду 69 Соответсвует большая буква - E
    Коду 112 Соответсвует маленькая буква - p
    Коду 120 Соответсвует маленькая буква - x
    Коду 128 Соответсвует символ -

Работа с strstr

Для решения задач данного блока вам понадобятся следующие функции: strstr.

  1. Дана строка 'ab--cd--ef'. С помощью функции strstr выведите на экран строку '--cd--ef'
    
                                $str="ab--cd--ef";
                                echo strstr($str,"--");                        
                            
    --cd--ef

Задачи

  1. Преобразуйте строку 'var_test_text' в 'varTestText'. Скрипт, конечно же, должен работать с любыми аналогичными строками.
    
                            $arr=["var_test_text", 
                                  "php_study_easy_any_time"];
                            foreach ($arr as $str) {      
                                echo lcfirst(
                                    str_replace(' ','',
                                        ucwords(
                                            str_replace('_',' ', $str)
                                        )
                                    )
                                );
                            }
                        
    varTestText
    phpStudyEasyAnyTime
  2. Дан массив с числами. Выведите на экран все числа, в которых есть цифра 3.
    
                            $arr=[];
                            $i=0;
                            while ($i<12) {
                                $arr[]=mt_rand(30,53);
                                $i++;
                            }
                            foreach ($arr as $num) {
                                if(strpos("a".strval($num), "3")!=0) {
                                    echo $num." - Есть цифра 3!";
                                    $arr_3[]=$num; 
                                } else {
                                    $arr_not3[]=$num;
                                }
                            }
                            var_dump($arr_3);
                            var_dump($arr_not3);
                        
    35 - Есть цифра 3!
    43 - Есть цифра 3!
    53 - Есть цифра 3!
    53 - Есть цифра 3!
    array(4) { [0]=> int(35) [1]=> int(43) [2]=> int(53) [3]=> int(53) }
    array(8) { [0]=> int(44) [1]=> int(45) [2]=> int(40) [3]=> int(40) [4]=> int(48) [5]=> int(44) [6]=> int(51) [7]=> int(51) }