Skip to content

Instantly share code, notes, and snippets.

@pawjunior
Last active December 7, 2022 13:03
Show Gist options
  • Save pawjunior/8f18ec2a99e2e3b3109c307bdde55143 to your computer and use it in GitHub Desktop.
Save pawjunior/8f18ec2a99e2e3b3109c307bdde55143 to your computer and use it in GitHub Desktop.
//Напишите PHP-скрипт для создания двумерного массива (4х4), инициализированного до 10.
<?php
$a = array_fill(0, 4, array_fill(0, 4, 10));
echo "<pre>"; print_r($a); echo "</pre>";
?>
//Напишите PHP-скрипт для генерации простого случайного пароля [не используйте функцию rand ()] из заданной строки.
<?php
function password_generate($chars)
{
$data = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcefghijklmnopqrstuvwxyz';
return substr(str_shuffle($data), 0, $chars);
}
echo password_generate(7)."\n";
?>
/*Напишите программу PHP для создания диапазона, подобного следующему массиву.
массив
(
[20] => 2
[21] => 3
[22] => 4
[23] => 5
[24] => 6
[25] => 7
)
*/
<?php
echo "<pre>"; print_r(array_combine(range(20, 25),range(2,7))); echo "</pre";
?>
//Напишите программу PHP, чтобы получить расширение файла
<?php
function file_extension($str1){
$str1=implode("",explode("\\",$str1));
$str1=explode(".",$str1);
$str1=strtolower(end($str1));
return $str1;
}
$file='example.pdf';
echo "\n".file_extension($file)."\n";
?>
//Напишите функцию PHP, чтобы получить расстояние между Красноярском и Монтевидео.
<?php
function lat_long_dist_of_two_points($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo){
$pi = pi();
$x = sin($latitudeFrom * $pi/180) *
sin($latitudeTo * $pi/180) +
cos($latitudeFrom * $pi/180) *
cos($latitudeTo * $pi/180) *
cos(($longitudeTo * $pi/180) - ($longitudeFrom * $pi/180));
$x = atan((sqrt(1 - pow($x, 2))) / $x);
return abs((1.852 * 60.0 * (($x/$pi) * 180)) / 1.609344);
}
// Distance from Krasnoyarsk to Montevideo
echo lat_long_dist_of_two_points(56.0184, 92.8672, -34.9033, -56.1882).' mi'."\n";
?>
//Напишите скрипт PHP, чтобы извлечь имя пользователя из следующего идентификатора электронной почты.
<?php
$mailid ='rayy@example.com';
$user = strstr($mailid, '@', true);
echo $user."\n";
?>
//Напишите PHP-скрипт для удаления всех пробелов в массиве.
<?php
$my_array = array(15, null, " ", -2, NULL, "", " \n", "Red", 54, "\t");
echo '<pre>'; print_r($my_array); echo '</pre>';
$result = array_filter($my_array, create_function('$x','return preg_match("#\S#", $x);'));
echo '<pre>'; print_r($result); echo '</pre>';
?>
//Вам нужно разработать программу, которая считала бы количество вхождений какой-нибудь выбранной вами цифры в выбранном вами числе. Например: цифра 5 в числе 442158755745 встречается 4 раза
<?php
$ch = 442158755745;
$num = 5;
$result = 0;
settype($ch,'string');
settype($num,'string');
for($i=0;$i<=strlen($ch)-1;$i++){
if($ch[$i] == $num){
$result++;
}
}
echo 'Цифра '.$num.' в числе '.$ch.' встречается '.$result.' раза.';
//Напишите PHP-скрипт для обрезки всех элементов массива с помощью функции array_walk.
<?php
$colors = array( "Red ", " Green", "Black ", " White ");
echo '<pre>'; print_r($colors); echo '</pre>';
array_walk($colors, create_function('&$val', '$val = trim($val);'));
echo '<pre>'; print_r($colors); echo '</pre>';
?>
//Напишите PHP-скрипт, который удаляет последнее слово из строки
<?php
$str1 ='The quick brown fox';
echo preg_replace('/\W\w+\s*(\W*)$/', '$1', $str1)."\n";
?>
//Напишите программу PHP для определения адресов электронной почты, которые не являются уникальными
<?php
function array_not_unique($my_array) {
$same = array();
natcasesort($my_array);
reset ($my_array);
$old_key = NULL;
$old_value = NULL;
foreach ($my_array as $key => $value) {
if ($value === NULL) { continue; }
if ($old_value == $value) {
$same[$old_key] = $old_value;
$same[$key] = $value;
}
$old_value = $value;
$old_key = $key;
}
return $same;
}
$test_array = array();
$test_array[1] ='xyz@example.com';
$test_array[2] ='dse@example.com';
$test_array[3] ='xyz@example.com';
$test_array[4] ='mno@example.com';
echo '<pre>'; print_r(array_not_unique($test_array)); echo '</pre>';
?>
//Напишите функцию PHP для создания удобочитаемой случайной строки для капчи
<?php
function random_string($length = 5)
{
$chars = 'bcdfghjklmnpqrstvwxyzaeiou';
for ($x = 0; $x < $length; $x++)
{
$result .= ($x%2) ? $chars[mt_rand(19, 23)] : $chars[mt_rand(0, 18)];
}
return $result;
}
echo random_string();
?>
//Напишите PHP-скрипт для расчета текущего вашего возраста.
<?php
$bday = new DateTime('10.1.1995'); // Дата рождения
$today = new Datetime(date('m.d.y'));
$diff = $today->diff($bday);
printf('Ваш возраст: %d лет, %d месяцев, %d дней', $diff->y, $diff->m, $diff->d);
printf("\n");
?>
//Напишите функцию PHP, которая сравнивает два многомерных массива и возвращает разницу.
<?php
function key_compare($a,$b)
{
if($a===$b)
return 0;
return($a>$b)?1:-1;
}
function multidimenssional_array_diff($arr1, $arr2)
{
return array_diff_uassoc($arr1['c'], $arr2['c'],"key_compare");
}
//multidimenssional arrays
$color1=array('a'=>'White','b'=>'Red','c'=>array('a'=>'Green','b'=>'Blue','c'=>'Yellow'));
$color2=array('a'=>'White','b'=>'Red','c'=>array('a'=>'White','b'=>'Red','c'=>'Yellow'));
print_r(multidimenssional_array_diff($color1, $color2));
?>
//Напишите PHP-скрипт для объединения (используя один массив для ключей и другой для его значений) следующих двух массивов.
<?php
function combine_Array($keys, $values)
{
$result = array();
foreach ($keys as $i => $k) {
$result[$k][] = $values[$i];
}
array_walk($result, create_function('$v', '$v = (count($v) == 1)? array_pop($v): $v;'));
return $result;
}
$array1 = array('x', 'y', 'y');
$array2 = array(10, 20, 30);
echo '<pre>'; print_r(combine_Array($array1, $array2)); echo '</pre>';
?>
//Напишите PHP-скрипт, чтобы узнать количество дней текущего месяца
<?php
echo 'Количество дней в '.date('M'). ': ' .date('t')."\n";
?>
//Напишите функцию для вычисления факториала числа (неотрицательное целое число). Функция принимает число в качестве аргумента
<?php
function factorial_of_a_number($n)
{
if($n ==0)
{
return 1;
}
else
{
return $n * factorial_of_a_number($n-1);
}
}
print_r(factorial_of_a_number(4)."\n");
?>
// Создайте три переменные и присвойте им числовые значения. Выведите на экран их произведение. Теперь создайте пользовательскую функцию, принимающую два аргумента по ссылке и один аргумент по значению. Функция должна присваивать переменным другие числовые значения. Вызовите функцию, после чего снова выведите на экран произведение всех переменных.
<?php
//Присвоили первой переменной значение
$n_1=1;
//Присвоили второй переменной значение
$n_2=2;
//Присвоили третьей переменной значение
$n_3=3;
//Выведет 6
echo $n_1*$n_2*$n_3, '<br>';
//2 аргумента передаются по ссылке, а третий по значению
function my_func(&$arg_1,$arg_2,&$arg_3 ){
$arg_1=5;
$arg_2=10;
$arg_3=20;
}
//Вызываем функцию
my_func($n_1,$n_2,$n_3);
//Выведет 200
echo $n_1*$n_2*$n_3;
/* Т.к. 2 переменные переданы по ссылке, то изменив их значения внутри функции,
мы изменили и сами переменные. Третья переменная была передана по значению,
поэтому при манипуляциях внутри функции, само значение вне функции осталось
прежним. */
?>
// Напишите PHP-скрипт для удаления нечисловых символов, кроме запятой и точки.
<?php
$str1 = "$12,334.00A";
echo preg_replace("/[^0-9,.]/", "", $str1)."\n";
?>
//Разработайте программу, которая из чисел 20 .. 45 находила те, которые делятся на 5 и найдите сумму этих чисел.
<?php
$start = 20;
$end = 45;
$sum = 0;
// Числа от 20 до 45
for ($i = $start; $i <= $end; $i++) {
if (fmod($i, 5) == 0) {
$sum += $i;
}
}
echo "Сумма: {$sum}\n";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment