Читать книгу «Рисование цветных изображений с помощью PHP. Программирование для развлечения» онлайн полностью📖 — Джеймса Уэллса — MyBook.
image

If-else оператор

Оператор if-else часто используется в компьютерном коде.

Например, если идет дождь, мы остаемся дома. В противном случае мы пойдем на пляж.

В компьютерном коде вы можете написать то же следующим образом:

if ($weather == «raining»)

$plan= «we stay at home»;

else

$plan= «we go to the beach»;

Оператор if-else может быть более сложным:

if ($weather==«Hurricane»)

$plan= «we go to a shelter»;

elseif ($weather == «raining»)

$plan= «we stay at home»;

elseif ($weather==«Cloudy»)

$plan= «we go shopping»;

else

$plan= «we go to the beach»;

Условие может быть более сложным. || символ означает «или».

if (($grade==«A») || ($grade==«B») || ($grade==«C»))

$test_result = ’passed’;

else

$test_result = ’failed’;

Когда используется «или» для нескольких условий, результат будет истинным, если хотя бы одно условие истинно.

Символ && означает «и».

if (($weather==«sunny») && ($season==«summer»))

$plan= «we go to the beach»;

elseif (($weather==«sunny») && ($season==«winter»))

$plan= «we go skiing»;

Когда используется «И» для нескольких условий, результат будет истинным, если истинно каждое условие.

Вы должны включить объединенные условия в скобки ().

Обратите внимание, что вы используете один знак равенства при присвоении значения переменной и двойной знак равенства при сравнении двух переменных.

Для сравнения переменных вы также можете использовать знаки больше ">», меньше " <», больше или равно "> =», меньше или равно " <= " или не равно»! =».

Циклы

Что такое цикл? Представьте, что ваши дети играют ночью, когда им пора ложиться спать.

Вы говорите им: «Дети, пора спать!».

Они продолжают играть.

Вы говорите им: «Дети, пора спать!».

Они продолжают играть.

И вы продолжаете говорить им одно и то же, пока они не пойдут спать.

В компьютерном программировании это называется циклом.

While Цикл

 
While ($kids!= «go to sleep»)
{
$say= «Let’s go to sleep»;
}
 

Посмотрите на пример цикла while ниже. $a++ означает увеличение значения $а на единицу. Это то же самое что

 
$a = $a +1;
 
 
Файл: while_loop.php
<?p
$a=0;
while ($a <5)
{
$a++;
echo ’a =». $a;
echo»,»;
}
?>
Output: a =1, a =2, a =3, a =4, a =5,
 

Значение переменной $a в цикле будет увеличиваться на 1 при каждом выполнении цикла, пока $a не достигнет 5. Затем цикл остановится. При использовании цикла while вы должны указать условия, при которых цикл останавливается. В противном случае он будет выполняться всегда и приведет к крушению компьютера.

Do While Цикл

В цикле while сначала проверяется условие. Если условие истинно, код выполняется. В цикле Do While условие проверяется после выполнения кода.

 
do {
$say= «Let’s go to sleep»;
} while ($kids!= «go to sleep»);
Файл: do_while.php
<?php
$b=0;
do {
$b++;
echo ’b =». $b;
echo»,»;
}
while ($b <5)
?>
output: b =1, b =2, b =3, b =4, b =5,
 

Вы можете увидеть разницу между циклами while и do while, если присвоить переменной значение, не удовлетворяющее условию.

 
$a=7;
while ($a <5)
{
$a++;
echo «a =». $a;
echo»,»;
}
 

Семь больше пяти. Поскольку условие проверяется перед выполнением кода, цикл while не будет выполняться и не будет иметь вывода.

 
$b=7;
do {
$b++;
echo ’b =». $b;
echo»,»;
}
while ($b <5)
 

Поскольку условие проверяется после выполнения кода, цикл do while выводит b = 8.

Семерка будет увеличена на единицу, и выполнение остановится.

For Цикл

For Цикл имеет следующую структуру.

 
for ($i =0; $i <3; $i++) {
echo «I =». $i. "<br>»;
}
The output:
     I = 0
I = 1
I = 2
 

Цикл for удобен для перебора массива. Используя упомянутый ранее массив фруктов, мы можем отобразить все фрукты.

Вы можете использовать функцию count для возврата количества элементов в массиве.

Файл: fruit.php

<?php

$fruit = array («Apple», «Plum», «Orange», «Banana»,» Mango», «Lemon», «Pear»);

for ($i=0; $i <count ($fruit); $i++) {

echo $fruit [$i];

echo»,»;

}

?>

Output: Apple, Plum, Orange, Banana, Mango, Lemon, Pear,

Вы можете вывести все ключи массива или ключ элемента по значению.

Файл: return_key.php

<?php

$fruit = array («Apple», «Plum», «Orange», «Banana»,» Mango», «Lemon», «Pear»);

echo “ <br> <br>»;

print_r (array_keys ($fruit));

echo “ <br> <br>»;

print_r (array_keys ($fruit, «Orange»));

?>

Output:

Array ([0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4

[5] => 5 [6] => 6) //выводит все ключи

Array ([0] => 2) //выводит ключ только одного элемента

Функция print_r печатает массив.

Файл: colors_key.php

<?php

$colors=array («red»=> «#FF0000», «orange»=>

«#FFA500»);

 
echo “ <br> <br>»;
print_r (array_keys ($colors));
echo “ <br> <br>»;
print_r (array_keys ($colors, «#FF0000»));
?>
Output:
Array ([0] => red [1] => orange)
Array ([0] => red)
 

Цикл Foreach (Для каждого)

Иногда цикл foreach более удобен, потому что вам не нужно знать, сколько элементов в массиве. Вот пример цикла foreach с нашим массивом фруктов.

foreach ($fruit as $value) {

echo $value;

echo»,»;

}

Output: Apple, Plum, Orange, Banana, Mango, Lemon, Pear,

Первый параметр в цикле foreach должен быть именем массива. В нашем случае это $fruit. Второй параметр может иметь любое имя. Тот же результат вы получите с помощью следующего кода.

foreach ($fruit as $anything) {

echo $anything;

echo»,»;

 
}
Output: Apple, Plum, Orange, Banana, Mango, Lemon, Pear,
foreach ($colors as $color) {
echo $color;
echo»,»;
}
Output: #FF0000, #FFA500, #FFFF00, #008000,
 

Вы можете отображать в цикле foreach не только значения массива, но и ключи массива.

 
foreach ($colors as $key => $color) {
echo $key;
echo "=>»;
echo $color;
echo "<br>»;
Output:
red=> #FF0000
orange=> #FFA500
yellow=> #FFFF00
green=> #008000
 

Вы должны понимать, что использование точных слов для таких параметров, как $key и $color, необязательно.

Вы можете использовать любое слово для каждого. Существенным является только местоположение параметров.

 
foreach ($colors as $x => $y) {
echo $x;
echo "=>»;
echo $y;
echo "<br>»;
Output:
red=> #FF0000
orange=> #FFA500
yellow=> #FFFF00
green=> #008000
 

Функция

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

Давайте рассмотрим несколько примеров пользовательских функций – функций, созданных пользователем. Имя функции должно начинаться с буквы или знака подчеркивания. Оно не может начинаться с цифры. Давайте создадим функцию, которая конвертирует фунты в килограммы.

 
function convert_lb_to_kg ($lb) {
$kg = $lb * 0.454;
return $kg;
}
 

Функция может иметь несколько параметров

 
function calculate_speed ($miles, $hours) {
$msg= «»;
If ($hours ==0)
$msg= " Количество часов должно быть больше нуля!»;
else
{
$speed = $miles/$hours;
$msg= «Скорость». $speed.» миль в час.»;
}
return $msg;
 

}

Передача переменных по значению или по ссылке

Создадим функцию, которая ничего не возвращает, но меняет свой параметр.

Вы должны использовать знак «&» перед параметром, чтобы передать его по ссылке.

<?php

function convert_lb_to_kg (&$w) {

$w = $w * 0.454;

}

$a=100;

convert_lb_to_kg ($a);

echo “ 100lb =». $a.» kg <br>»;

?>

Output: 100lb = 45.4 kg

Если вы не используете знак &, вы передаете копию своей переменной в функцию, и когда копия изменяется, исходная переменная не изменяется.

 
<?php
 
 
function convert_lb_to_kg ($w) {
 
 
$w = $w * 0.454;
 
 
}
$a=100;
 
 
convert_lb_to_kg ($a);
 
 
echo “ 100lb =». $a.» kg <br>»;
?>
 
 
Output: 100lb = 100 kg
 

Как рисовать изображения

Теперь мы изучили основы и можем приступать к рисованию изображений.

Вернемся к школьной математике. Когда вы рисовали графики, горизонтальная ось (x) называлась абсциссой, а вертикальная ось (y) называлась ординатой. Чтобы нарисовать линию, мы должны указать координаты X и Y двух точек. В компьютерном программировании ширина и высота окна измеряются в пикселях. Точка в левом верхнем углу окна имеет координаты X=0 и Y=0.

Если мы сдвинем точку на 200 пикселей вправо, не меняя ее положения по вертикали, координаты станут X=200 и Y=0.

Если мы переместим точку на 300 пикселей вниз, координаты точки станут X = 200 Y = 300.

Нарисуйте еще одну точку с координатами X = 800 и Y = 600 и соедините точки прямой линией. См. Рис. 13.

Рис. 13. Прямая.


Теперь вы можете нарисовать линию на веб-странице с помощью PHP-кода.

Но прежде мы должны внести изменения в файл php.ini в парке PHP. Откройте файл php.ini в notepad++ и найдите строку «;extension=gd». Удалите точку с запятой перед extension=gd, extension=fileinfo и extension=gmp.

Сохраните файл.

;extension=bz2

;extension=curl

;extension=ffi

;extension=ftp

extension=fileinfo

extension=gd

;extension=gettext

extension=gmp

;extension=intl

Найдите error reporting, удалите точку с запятой перед E_ALL и удалите весь текст после E_ALL на той же строке.


Рис. 14. Еrror reporting


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

https://youtu.be/LVEhccXXnOo"

Как рисовать линии

Чтобы создать и отобразить линию или любую фигуру, нам нужно создать пустое черное изображение, используя встроенную функцию PHP imagecreatetruecolor. Эта функция принимает два параметра: ширину и высоту изображения.

Затем нам нужно заказать цвет с помощью функции imagecolorallocate. Эта функция принимает изображение, созданное функцией imagecreatetruecolor, и цвет в формате RGB. RGB означает красный (Red), зеленый (Green) и синий (Blue).

Каждый RGB цвет может иметь значение от 0 до 255. Например, RGB (255, 0, 0) красный,

RGB (255, 255, 0) – желтый, RGB (0, 255, 0) – зеленый, RGB (0, 0, 255) – синий.

Вы можете выбрать значения RGB цветов на этом веб-сайте: https://www.w3schools.com/colors/colors_converter.asp.

После заказа цвета мы можем нарисовать изображение. Чтобы нарисовать линию, мы должны использовать функцию imageline, которая принимает шесть параметров: изображение, созданное функцией imagecreatetruecolor, координаты X и Y двух точек и цвет, созданный функцией imagecolorallocate.

Чтобы отобразить строку на веб-странице, мы должны использовать заголовок:

header («Content-type: image/jpeg’);

imagejpeg ($img); функция выводит изображение в браузер.

Функция imagedestroy стирает изображение и освобождает память.

Файл: draw_line.php. (См. рис. 15.)

 
<?php
// Создать пустое изображение
$img=imagecreatetruecolor (900, 700);
//заказать цвет (заказываем цвет)
$yellow = imagecolorallocate ($img, 255, 255, 0);
// draw a line
imageline (
$img, //GdImage
200, //x1,
300, //y1,